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

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

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

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

怎么样:

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

找到这个月的第一个星期一比较棘手。 目前尚不清楚您是否需要 - 请告诉我们您是否需要。

注意使用DateTime.Today 一次 - 这样你就不会得到潜在的奇怪现象,其中日期在被评估条件的两个部分之间变化。

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

编辑:对不起,错字:)

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

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

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

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

您可以执行以下操作

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