【发布时间】:2018-07-14 06:22:22
【问题描述】:
我正在努力寻找一种简单有效的解决方案来计算一个月的星期几。例如,如果给定日期是第一个星期一Monday 5th March 2018,那么我想获取接下来 6 个月的每个月的第一个星期一的日期,例如:Monday 2nd April 2018 和 Monday 3rd May 2018 等等。
我尝试使用来自this question 的以下代码。但是,下面的代码只返回我希望它返回整个日期的星期数。
static class DateTimeExtensions
{
static GregorianCalendar _gc = new GregorianCalendar();
public static int GetWeekOfMonth(this DateTime time)
{
DateTime first = new DateTime(time.Year, time.Month, 1);
return time.GetWeekOfYear() - first.GetWeekOfYear() + 1;
}
static int GetWeekOfYear(this DateTime time)
{
return _gc.GetWeekOfYear(time, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
}
}
但是我很困惑,不知道如何修改上面的代码来解决这个问题。任何帮助将不胜感激。
【问题讨论】:
-
开始日期加28天,如果月份不变,再加7天。重复 6 次。