标签:
1.国际上的WeekDay是从周日到周六的顺序
2.再说C#的DayOfWeek枚举值是依次从0到6,即周一的枚举值为1
3.算法规律:非周一的就要去获取上周一,而一周有7天。以周一为分界点,当天为周二及往后,则算法为减7天后再减当天N数再加1;周日的话,算法为减7天后再加1。
以此算法规律,可建立获取任意指定日期的上周几的日期的通用方法,代码如下:
pubilc DateTime getWeekUpOfDate(DateTime dt,DayOfWeek weekday,int Number) { int wd1=(int)weekday; int wd2=(int)dt.DayOfWeek; return wd2==wd1?dt.AddDay(7*Number):dt.AddDay(7*Number-wd2+wd1); }
参数说明:dt为指定的以哪个日期来计算,weekday为计算(上、当前、下)几周的周几
方法调用如下:
DateTime dt=getWeekUpOfDate(DateTime.Now,DayOfWeek.Monday,-1);
这是获取当前日期的上周一的日期
DateTime dt=getWeekUpOfDate(DateTime.Now,DayOfWeek.Monday,-2);
这是获取当前日期的上上周一的日期
DateTime dt=getWeekUpOfDate(DateTime.Now,DayOfWeek.Monday,1);
这是获取当前日期的下周一的日期
DateTime dt=getWeekUpOfDate(DateTime.Now,DayOfWeek.Monday,0);
这是获取本周周一的日期
由于不能分享到博客,随在次进行记录
来源:http://zhidao.baidu.com/link?url=wfYUKWHfdycusGNscQar7WFFG9cbwVQnwVsCWxWF5CCAYmklHBA3V1en0KkCFtacdk686wVFcug5jlGxtMUuRK
标签:
原文地址:http://www.cnblogs.com/gj3326/p/4226386.html