1.国际上的WeekDay是从周日到周六的顺序2.再说C#的DayOfWeek枚举值是依次从0到6,即周一的枚举值为13.算法规律:非周一的就要去获取上周一,而一周有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
新闻热点
疑难解答