开发者

C# How can I check if today is the first Monday of the month?

开发者 https://www.devze.com 2023-02-14 15:02 出处:网络
How can I check if today is the first Monday of the month? The code below gives me the last day of the month, how should I modify this?

How can I check if today is the first Monday of the month?

The code below gives me the last day of the month, how should I modify this?

DateTime today =开发者_如何学C DateTime.Today;
DateTime endOfMonth = new DateTime(
       today.Year, 
       today.Month, 
       DateTime.DaysInMonth(today.Year, today.Month)
);


How about:

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

Finding the first Monday of the month is slightly trickier. It's not clear whether or not you need that - let us know if you need that.

Note the use of DateTime.Today once - that way you don't end up with potential oddities where the date changes between the two parts of the condition being evaluated.


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

Edit: sorry, typo :)


I don't know c#, but in any language, it's

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


A related case is, as Jon said, slightly trickier. Presuming you know the year and month:

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;
}


You could do the following

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

精彩评论

暂无评论...
验证码 换一张
取 消