给定一个日期,我想计算从星期六开始到星期五结束的一周的周末(星期五)。
我尝试了以下方法,但有问题 二月, 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。