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
新聞熱點
疑難解答