2010-06-09 4 views
0

ı 첫 월요일부터 미래 주 필요합니까?C# 날짜 시간 문제

C#을 만드는 방법은 무엇입니까?

이제 날짜 09.jan.2009

ı 필요 15.jun.2009 월요일

+2

를 작동해야 그와 나는 첫 번째 일요일합니다. [@ oraclee, 약간의 세부 사항을 추가하십시오] –

+0

Ok ı 세부 사항 추가 – Chicharito

답변

3

GetFirstMondaySince(DateTime.Now + TimeSpan.FromDays(2)); 너무

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 (날짜 시간 (2009,1,1))

참고 : 테스트되지 않은 코드. 사용하기 전에 이해하고 테스트하십시오.

첫째 월요일 다음 주 :

+0

감사합니다 .. – Chicharito

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

루프는 가공 식품을 대체해서는 안됩니다. –

+0

'dt '가 월요일이면 어떨까요? 그것은 결코 반복되지 않고 기본적으로'DateTime.Today'를 반환합니다. –