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 = 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;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With