根据一年中的一周(每周更改方法)确定条件

本文关键字:方法 条件 每周 一年 一周 | 更新日期: 2023-09-27 18:20:01

我将部署一些每周更改的条件方法。

例如,这是我的旧代码:

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
         }
         ..........

正如你所看到的,在第3周之后,我开始运行/循环函数1,从开始到第6周,这将继续

直到年底和之后。

我应该使用"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 
      }

根据一年中的一周(每周更改方法)确定条件

使用GetWeekOfYear。它为您提供了一些很好的灵活性,包括如何定义第一周,以及一周中的第一天应该是什么。

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();
    }
}