根據傳入的日期,得到日期所在的周數(當天所在的一年中的第幾周)


今天做項目, 有個需求是根據當前的日期,得到日期所在的這一年的第幾周的數值. 
在C#或者sql server里面有現成的方法能夠獲取到.  但是在js里面還沒有找到(有點懶,沒怎么百度...)
所以索性就直接寫一個.

優點么,,沒發現.... 就是感覺用到的時候,能方便用吧.
缺點,,就是不支持 跨年的. 

 

以下是代碼:

 1 function GetWeekByDate(testTime) {
 2 
 3             var arrayMonthDay = null;
 4             var nowDate = new Date();//當前日期
 5             var nowYear = nowDate.getFullYear();//當前年
 6             var nowMonth = 1;//第一月
 7             var nowDay = 1;//第一天
 8             var week = 1;//第一周
 9         
10           //根據年是否為閏年,得到 arrayMonthDay的值
11             if ((nowYear % 400 == 0) || (nowYear % 4 == 0) && (nowYear % 100 != 0)) {
12                 arrayMonthDay = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
13             }
14             else {
15                 arrayMonthDay = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
16             }
17             
18            //獲取當前年的一月一號 是星期幾
19             var time = nowYear + "-" + nowMonth + "-" + nowDay;
20             var weekDay = new Date(time).getDay();
21 
22 
23             var bdate = new Date(testTime); //選擇的時間
24             var bmonth = bdate.getMonth() + 1; //
25             var bday = bdate.getDate(); //日期
26             var bweek = 0;
27             while (true) {
28                  //如果當前的月份是驗證的月份的值,並且當前的天數是驗證的日期的值,則結束循環,保存日期
29                 if (nowMonth == bmonth && nowDay == bday) {
30                     bweek = week;
31                     break;
32                 }
33                //否則當天++,星期xx
34                 nowDay++;
35                 weekDay++;
36 
37                  //如果當天的值>當前月份所對應的的最大天數,則月份+1,日期改為1
38                 if (nowDay > arrayMonthDay[nowMonth - 1]) {
39                     nowMonth++;
40                     nowDay = 1;
41                 }
42                  
43                  //如果當前星期大於6,則說明這周已完成,周數+1,星期改為 0 
44                 if (weekDay > 6) {
45                     week++;
46                     weekDay = 0;
47                 }
48             }
49             var value = bweek ;
50             return value;
51         }

執行效果:

 

不好的地方,還請各位大俠批評哈.(*^__^*) ...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM