计算14天的顺序

谁能帮我,如何使用C#计算每两周(14天)的逻辑?例如,从2月的顺序开始,有14天开始

  • 星期一开始日期2月8日(下一个2月22日,3月7日,3月21日等)
  • 2月11日(星期四)开始日期(2月25日,3月10日和3月24日等)
  • 星期五开始日期2月12日(下一个2月26日,3月11日,3月25日等)

我的逻辑不适用于14天的日期显示,因为2月15日将添加14天,它将显示“ First14days”日期为2016年2月29日,这是错误的。

这是C#逻辑

Day.Days value are Monday, Thursday, Friday etc..
foreach (var Day in day)
{ 
    Example Day.Days = Monday
    Int 14days = (((int)Enum.Parse(typeof(DayOfWeek), Day.Days) - (int)today.DayOfWeek + 14) % 7);
    DateTime   First14days = today.AddDays(14days);                                    
}  
我的输出应该是

我的输出应该是

d4Rk

因此,这是您的多合一解决方案:

// determine the date of next given weekday
DateTime date = GetNextWeekday(DateTime.Today, DayOfWeek.Tuesday); 

// create a list and add the start date (if you want)
List<DateTime> fortnights = new List<DateTime>() { date };

// add as many "fortnights" as you like (e.g. 5)
for (int i = 0; i < 5; i++) 
{
    date = date.Add(TimeSpan.FromDays(14));
    fortnights.Add(date);
}

// use your list (here: just for printing the list in a console app)
foreach (DateTime d in fortnights) 
{
    Console.WriteLine(d.ToLongDateString());
}

获取下一个工作日的方法,网址为:https : //stackoverflow.com/a/6346190/2019384

public static DateTime GetNextWeekday(DateTime start, DayOfWeek day)
{
    // The (... + 7) % 7 ensures we end up with a value in the range [0, 6]
    int daysToAdd = ((int) day - (int) start.DayOfWeek + 7) % 7;
    return start.AddDays(daysToAdd);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章