2011-05-23 126 views
2

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

我尝试以下,但有问题,今年2月,2011年2月26日是给2011年2月25日onstead的03/04/2011

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

回答

3

当你在周六通过,你减去7天而不是使用那一天。

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

DateTime weekEnd = weekStart.AddDays(6); 
1

这就行了:

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

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

相关问题