2010-06-09 145 views
0

我需要第一個星期一的未來一週嗎?C#日期時間問題

如何製作C#?

現在約會09.jan.2009

我需要15.jun.2009週一

+2

,我想第一個星期日。 [@oraclee,請添加一些細節] – 2010-06-09 09:34:43

+0

好吧ı加入詳細信息 – Chicharito 2010-06-09 09:37:31

回答

3

這應該工作太

DateTime monday = DateTime.Now.AddDays(-(int)DateTime.Now.DayOfWeek + 1).AddDays(7).Date 
4

如果你想獲得第一個星期一之後的某個日期,這樣做:

DateTime GetFirstMondaySince(DateTime afterWhen) 
{ 
    int dayOfWeek = (int)someDate.DayOfWeek; 
    int wantedDay = (int)DayOfWeek.Monday; 
    return afterWhen.AddDays((wantedDay-dayOfWeek+7)%7); 
} 

對於在今年的第一個星期一,使用GetFirstMonday(DATETIME(2009,1,1))

等。

注意:未經測試的代碼。使用前請認真理解和測試。

第一個星期一下週:GetFirstMondaySince(DateTime.Now + TimeSpan.FromDays(2));

+0

工作謝謝.. – Chicharito 2010-06-09 09:43:02

1
public DateTime GetNextMonday() 
    { 

      DateTime dt = DateTime.Today; 

      if dt.DayOfWeek == DayOfWeek.Monday 
      { 
       dt.AddDays(7); 
      } 
      else 
      { 
       while (dt.DayOfWeek != DayOfWeek.Monday) 
       { 
       dt = dt.AddDays(1); 
       } 
      } 
      return dt; 
    } 
+2

循環不應該代替算術。 – 2010-06-09 09:41:45

+0

如果'dt'是星期一怎麼辦?它永遠不會循環並基本返回'DateTime.Today'。 – 2010-06-09 09:43:15