時間處理,java時間處理
時間處理
通過時間或去相應星期幾的日期
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