How to get the date?

  • Thread starter Thread starter Polaris
  • Start date Start date
P

Polaris

Hi Experts:

Using C#, knowing today's date, how to get the date of NEXT Tuesday?

For example, if today is 2007-04-26, I'd like to get the date of next
Tuesday which is 2007-05-01.

Thanks in advance!
Polaris
 
Using C#, knowing today's date, how to get the date of NEXT Tuesday?
For example, if today is 2007-04-26, I'd like to get the date of next
Tuesday which is 2007-05-01.

Try something like this

DateTime dt = DateTime.Now;
int daysToAdd;

if (dt.DayOfWeek == DayOfWeek.Tuesday)
daysToAdd = 7;
else
daysToAdd = ((int)DayOfWeek.Tuesday - (int)dt.DayOfWeek + 7) % 7;

Console.WriteLine(dt.AddDays(daysToAdd));


Mattias
 
Polaris said:
Hi Experts:

Using C#, knowing today's date, how to get the date of NEXT Tuesday?

For example, if today is 2007-04-26, I'd like to get the date of next
Tuesday which is 2007-05-01.

date = date.AddDays(1.0);

if (date.DayOfWeek == DayOfWeek.Saturday)
do something;
And previous date:

date = date.AddDays(-1.0);
if (date.DayOfWeek == DayOfWeek.Saturday) do something;
 
Mattias Sjögren said:
Try something like this

DateTime dt = DateTime.Now;
int daysToAdd;

if (dt.DayOfWeek == DayOfWeek.Tuesday)
daysToAdd = 7;
else
daysToAdd = ((int)DayOfWeek.Tuesday - (int)dt.DayOfWeek + 7) % 7;

or just
daysToAdd = ((int)DayOfWeek.Tuesday - (int)dt.DayOfWeek + 6) % 7 + 1;

with no need to handle Tuesday separately.
 
DateTime dt = DateTime.Now;
or just
daysToAdd = ((int)DayOfWeek.Tuesday - (int)dt.DayOfWeek + 6) % 7 + 1;

with no need to handle Tuesday separately.


Thanks, I figured there was a way to get rid of the special case, but
it was too early in the morning for me to think of it :)


Mattias
 
Back
Top