首页 > 代码库 > 时间处理

时间处理

时间处理

通过时间或去相应星期几的日期

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

时间处理