2014-08-30 3 views
0

매주 변경된 일부 조건부 방법을 배포하려고합니다.주별 조건 기반 (주별 변경 방법)

예를 들어이 내 예전의 코드입니다 :

DayOfWeek dow = DateTime.Now.DayOfWeek; 

      switch (dow) 
      { 
       case DayOfWeek.Friday: 
       ///Do something 
        break; 
       case DayOfWeek.Monday: 
       ///Do something 
        break; 
       case DayOfWeek.Saturday: 
       ///Do something 
        break; 
       case DayOfWeek.Sunday: 
       ///Do something 
        break; 
       case DayOfWeek.Thursday: 
       ///Do something 
        break; 
       case DayOfWeek.Tuesday: 
       ///Do something 
        break; 
       case DayOfWeek.Wednesday: 
       ///Do something 
        break; 
      } 

위의 코드에서 사용자가 매일 내 URL을 호출하는 경우, 그 일을 기준으로 특별한 대답을 얻을 것이다.

  Condition week 1 
     { 
      //function 1 
     } 
     Condition Week 2 
     { 
      //function 2 
     } 
     Condition Week 3 
     { 
      //function 3 
     } 
     Condition Week 4 
     { 
      //function 1 
     } 
     Condition Week 5 
     { 
      //function 2 
     } 
     .......... 

유 전 6 주까지 처음부터/루프 기능 1을 실행하려면 시작 3 주 후에 볼 수 있으며,이 때까지

을 계속 같이

는 지금은이 같은 다른 방법을 만들고 싶어 연말 연시.

"Calendar.GetWeekOfYear"를 사용하여이 목표를 달성해야합니까?

또는이 방법을 사용해야합니까? :

 DateTime myDT = DateTime.Now; 
     GregorianCalendar myCal = new GregorianCalendar(); 
     if ((myCal.GetDayOfMonth(myDT) >= 1) && (myCal.GetDayOfMonth(myDT) < 8)) 
     { 
     Function 1 
     } 
     else if ((myCal.GetDayOfMonth(myDT) >= 8) && (myCal.GetDayOfMonth(myDT) < 15)) 
     { 
     Function 2 
     } 
     else if ((myCal.GetDayOfMonth(myDT) >= 15) && (myCal.GetDayOfMonth(myDT) < 22)) 
     { 
     Function 3 
     } 
     else if ((myCal.GetDayOfMonth(myDT) >= 22) && (myCal.GetDayOfMonth(myDT) < 31)) 
     { 
     Function 1 
     } 
+1

두 가지 방법을 시도하고 어떤 것이 적합한 지 확인하십시오. –

+0

@ SonerGönül 응답에 감사드립니다. 첫 번째 "GetWeekOfYear"에 대한 해결책을 찾지 못했습니다. 두 번째 문제는 31 일 이후에 문제가 발생합니다. 새 달 apear가 있으면 Function 2 대신 Function 1이 다시 시작됩니다. –

답변

1

GetWeekOfYear을 사용하십시오. 첫 번째 주를 정의하는 방법과 첫 번째 요일을 지정하는 방법이 있습니다. MSDN 설명서는 다음과 같습니다.

class Program 
{ 
    static void Main(string[] args) 
    { 
     DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo; 
     Calendar calendar = dfi.Calendar; 
     var week = calendar.GetWeekOfYear(DateTime.Now.AddDays(1), CalendarWeekRule.FirstDay, DayOfWeek.Sunday); 

     Console.Write(week); 
     Console.ReadLine(); 
    } 
}