如何获得给定日期的下个月的第一个星期天?
答
你没有显示任何的努力,但让我们来编码什么Jon says一步一步;
如何获得下个月的第一个星期天给定日期
我们称之为dt
为DateTime
在你的问题中给定日期。所有月份以1
作为日期编号开始。这就是为什么我们可以创建一个名为DateTime
firstDayOfNextMonth
DateTime firstDayOfNextMonth = new DateTime(dt.Year, dt.Month + 1, 1);
现在怎么办?当然,我们需要检查一下星期几的名字,这是星期天还是不星期。到什么时候?直到我们找到星期天的一天。这就是为什么我们需要重复这一天(1天,每),直到我们找到它。我们可以使用DayOfWeek
enumeration作为日期名称。
我们在我们的代码中将DateTime
定义为firstSundayOfNextMonth
;
DateTime firstSundayOfNextMonth;
现在重复你下周的第一天,直到我们找到一个星期天;
while (firstDayOfNextMonth.DayOfWeek != DayOfWeek.Sunday)
{
firstDayOfNextMonth = firstDayOfNextMonth.AddDays(1);
}
当这while
声明停止工作?是的,当我们找到第一个星期天的时候。这就是为什么我们需要在此循环之外将此值分配给firstSundayOfNextMonth
变量。
while (firstDayOfNextMonth.DayOfWeek != DayOfWeek.Sunday)
{
firstDayOfNextMonth = firstDayOfNextMonth.AddDays(1);
}
firstSundayOfNextMonth = firstDayOfNextMonth;
我们找到了。 firstSundayOfNextMonth
是给定DateTime
(本例中为dt
)的下个月的第一个星期日。
答
试试这个:
DateTime dt1 = new DateTime(2015, 03, 13);
DateTime dm = dt1.AddMonths(1);
DateTime addm = new DateTime(dm.Year,dm.Month,1);
var nextSunday = addm.AddDays(7 - (int)addm.DayOfWeek);
你可以把任何日期代替
2015, 03, 13
像year,month,day
。
答
public static DateTime GetFirstSundayOfNextMonth(DateTime givenDate)
{
DateTime firstDayNextMonth = givenDate.AddDays(-givenDate.Day + 1).AddMonths(1);
int diff = 7 - (int)firstDayNextMonth.DayOfWeek;
return firstDayNextMonth.AddDays(diff);
}
答
某一日期后,即可获取下周一天,我发现一个简单的方法。
您需要为此做各种事情。我首先得到下个月第一天的DateTime。然后计算一周中的每一天(使用DayOfWeek属性)。然后基于这两条信息,您可以计算出本月的第一个星期天。 – 2015-03-13 06:53:07
Jon Skeet评论你的问题可能很幸运:P – 2015-03-13 07:01:23
你的代码在哪里? – Raptor 2015-03-13 07:15:26