С# Как я могу проверить, является ли сегодня первый понедельник месяца?
Как я могу проверить, является ли сегодня первый понедельник месяца?
Код ниже дает мне последний день месяца, как мне это изменить?
DateTime today = DateTime.Today;
DateTime endOfMonth = new DateTime(
today.Year,
today.Month,
DateTime.DaysInMonth(today.Year, today.Month)
);
Ответы
Ответ 1
Как насчет:
DateTime today = DateTime.Today;
if (today.DayOfWeek == DayOfWeek.Monday && today.Day <= 7)
Поиск первого понедельника месяца немного сложнее. Неясно, нужно ли вам это делать - сообщите нам, если вам это нужно.
Обратите внимание на использование DateTime.Today
один раз - таким образом вы не получите потенциальных странностей, когда дата изменяется между двумя частями оцениваемого условия.
Ответ 2
bool isItFirstMonday = DateTime.Today.DayOfWeek == DayOfWeek.Monday
&& DateTime.Today.Day <= 7
Изменить: извините, опечатка:)
Ответ 3
Я не знаю С#, но на любом языке он
if Today is monday,
and Today Date is 7 or less.
Ответ 4
Связанный случай, как сказал Джон, немного сложнее. Предполагая, что вы знаете год и месяц:
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;
}
Ответ 5
Вы можете сделать следующее
DateTime dt = ...;
if (dt.DayOfWeek == DayOfWeek.Monday && dt.Day <= 7) {
// First Monday of the month
}