计算周六至周五的周末



给定一个日期,我想计算从星期六开始到星期五结束的一周的周末(星期五)。

我尝试了以下方法,但有问题 二月, 02/26/2011 给 02/25/2011 的 03/04/2011

System.DateTime weekStart = thedate.AddDays(-Convert.ToInt32(theDate.DayOfWeek) - 1);
System.DateTime weekEnd = weekStart.AddDays(6);
Interaction.MsgBox(weekEnd.ToString());

当你在星期六通过时,你减去 7 天而不是使用那一天本身。

DateTime weekStart = theDate.DayOfWeek == DayOfWeek.Saturday
                     ? theDate
                     : theDate.AddDays(-Convert.ToInt32(theDate.DayOfWeek) - 1);
DateTime weekEnd = weekStart.AddDays(6);

这样做可以:

System.DateTime weekStart = thedate.AddDays(-(Convert.ToInt32(thedate.DayOfWeek) + 1) % 7);
System.DateTime weekEnd = weekStart.AddDays(6);

基本上,确保减去不超过 6。

最新更新