什么是计算一年中第一周的星期一的最简单方法

我想通过一年,并得到一个代表第一周的第一个星期一的约会

所以:

  • 如果2011年通过,我会在2011年 1月3日回来
  • 如果在2010年通过,我会在2010年 1月4日回来

private DateTime GetFirstMondayOfYear(int year) { DateTime dt = new DateTime(year, 1, 1); while (dt.DayOfWeek != DayOfWeek.Monday) { dt = dt.AddDays(1); } return dt; } 

试试这个没有循环的解决方案:

 public DateTime FirstMonday(int year) { DateTime firstDay = new DateTime(year, 1, 1); return new DateTime(year, 1, (8 - (int)firstDay.DayOfWeek) % 7 + 1); }