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

时间:2011-04-14 14:35:22

标签: c# datetime

我希望在一年内通过并获得代表第一周第一个星期一的日期

这样:

  • 如果传入 2011 ,我会回来 2011年1月3日
  • 如果传入 2010 ,我会回来 2010年1月4日

3 个答案:

答案 0 :(得分:11)

尝试使用不带循环的解决方案:

public DateTime FirstMonday(int year)
{
    DateTime firstDay = new DateTime(year, 1, 1);

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

答案 1 :(得分:9)

private DateTime GetFirstMondayOfYear(int year)
{
    DateTime dt = new DateTime(year, 1, 1);

    while (dt.DayOfWeek != DayOfWeek.Monday)
    {
        dt = dt.AddDays(1);
    }

    return dt;
}

答案 2 :(得分:0)

您可以使用fit2 = lm(log(price) ~ . , data = car)获取GetFirstMonday(2010)的第一个星期一。或者,您也可以使用Jan 2010指定月份,以获取GetFirstMonday(2010, 2)的第一个星期一。

GetFirstDayOfMonth可以获取给定月份的任何第一个Feb 2010,需要传递day的值才能获取所需DayOfWeek的结果。

day