C# 基于一年中的一周的条件(周变化法)
我将部署一些每周更改的条件方法 例如,这是我的旧代码:C# 基于一年中的一周的条件(周变化法),c#,C#,我将部署一些每周更改的条件方法 例如,这是我的旧代码: DayOfWeek dow = DateTime.Now.DayOfWeek; switch (dow) { case DayOfWeek.Friday: ///Do something break; case DayOfWeek.Monday:
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周后看到的,我从开始到第6周开始运行/循环函数1,这将继续
直到年底和之后
我应该使用“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
}
DateTime myDT=DateTime.Now;
GregorianCalendar myCal=新的GregorianCalendar();
如果((myCal.GetDayOfMonth(myDT)>=1)和&(myCal.GetDayOfMonth(myDT)<8))
{
职能1
}
如果((myCal.GetDayOfMonth(myDT)>=8)和&(myCal.GetDayOfMonth(myDT)<15))
{
职能2
}
如果((myCal.GetDayOfMonth(myDT)>=15)和&(myCal.GetDayOfMonth(myDT)<22))
{
职能3
}
如果((myCal.GetDayOfMonth(myDT)>=22)和&(myCal.GetDayOfMonth(myDT)<31))
{
职能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();
}
}
两种方法都试一下,看看哪一种适合你。@SonerGönül感谢你的回复。对于第一个“GetWeekOfYear”,我找不到任何解决方案。对于第二个,问题是在第31天之后,如果是新的月份,它将再次启动函数1,而不是函数2:(