C#如何检查今天是否是本月的第一个星期一?

时间:2011-03-02 17:02:49

标签: c# date

如何检查今天是否是本月的第一个星期一?

下面的代码告诉我这个月的最后一天,我应该如何修改它?

DateTime today = DateTime.Today;
DateTime endOfMonth = new DateTime(
       today.Year, 
       today.Month, 
       DateTime.DaysInMonth(today.Year, today.Month)
);

5 个答案:

答案 0 :(得分:37)

怎么样:

DateTime today = DateTime.Today;
if (today.DayOfWeek == DayOfWeek.Monday && today.Day <= 7)

查找本月的第一个星期一稍微麻烦一点。目前尚不清楚您是否需要 - 请告诉我们您是否需要。

请注意DateTime.Today 一次的使用 - 这样您就不会因为评估条件的两个部分之间的日期发生变化而产生潜在的奇怪现象。

答案 1 :(得分:18)

bool isItFirstMonday = DateTime.Today.DayOfWeek == DayOfWeek.Monday 
                         && DateTime.Today.Day <= 7

编辑:对不起,错字:)

答案 2 :(得分:7)

我不知道c#,但在任何语言中,都是

if Today is monday, 
and Today's Date is 7 or less.

答案 3 :(得分:3)

正如Jon所说,一个相关案例略显棘手。假设你知道年月:

public static DateTime getFirstMondayOfMonthAndYear(int Month, int Year)
{
    DateTime dt;
    DateTime.TryParse(String.Format("{0}/{1}/1", Year, Month), out dt); 
    for (int i = 0; i < 7; i++)
        {
        if (dt.DayOfWeek == DayOfWeek.Monday)
        {
            return dt;
        }
        else
        {
            dt = dt.AddDays(1);
        }
        }
    // If get to here, punt
    return DateTime.Now;
}

答案 4 :(得分:1)

您可以执行以下操作

DateTime dt = ...;
if (dt.DayOfWeek == DayOfWeek.Monday && dt.Day <= 7) {
  // First Monday of the month
}