萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> js實現日歷可獲得指定日期周數及星期幾示例分享

js實現日歷可獲得指定日期周數及星期幾示例分享

 編寫一個簡易日歷。在文本框中輸入要查找的日期,程序可以計算出這一天處在該年份的第幾周,並且能判斷出這一天到底是星期幾,需要的朋友可以參考下

應為要有交互,選擇了Js來實現,也算是 結對編程 的初試吧。 我將顯示部分用html 寫好,點擊的按鈕觸發事件函數是check();    代碼如下: function onCheck(){  var Year = document.getElementById("year").value; //獲取文本框的“年” var theYear =Year * 1; //轉換為number類型 //alert(theYear); // 獲取月值  var month = document.getElementById("month");  var index1=month.selectedIndex; var theMonth = month.options[index1].value; //獲取月值  var day = document.getElementById("day");  var index2=day.selectedIndex;  var theDay = day.options[index2].value;   // 輸入值判斷部分 ... //調用核心函數 days(theYear,theMonth,theDay);  }       核心函數days如下:     代碼如下: function days(year,month,day) {      var days = 0;  //表示改日期為當年的第幾天     //累加月天數     for(var i = 1; i < month; i++ ){     switch(i){     //大月的情況加31     case 1:     case 3:     case 5:     case 7:     case 8:     case 10:     case 12:{     days += 31;     break;     }     //小月的情況加30     case 4:     case 6:     case 9:     case 11:{     days += 30;     break;     }     //二月的情況,根據年類型來加     case 2:{         if(isLeapYear(year)){         days += 29; //閏年加29         }         else {         days += 28;         }     break;     }     } } day = day * 1; days += day;  //月天數之和加上日天數   var date0 = new Date(year,0,1);   //當年的第一天是周幾 //   alert(date0.getDay());     var date1 = new Date(year,month-1,day); //將日期值格式化,0-11代表1月-12月; //   alert((days + date0.getDay()+6)/7);     var nthOfWeek = Math.floor((days + date0.getDay()+6)/7);  //向下取整 //   alert(nthOfWeek);     var toDay = new Array("星期天","星期一","星期二","星期三","星期四","星期五","星期六");      //day.getDay();根據Date返一個星期中的某其中0為星期日      alert("該日期是一年中的第"+days+"天n"+"     是第"+nthOfWeek+"周的"+toDay[date1.getDay()]); }       調試過程中遇到了許多意外的錯誤,如類型的不匹配帶來的計算錯誤,如數字的捨入問題; 在隊友的協助下,他負責審核和協助抓蟲子,我負責實施和編碼; 在最後一個環節,對輸入值的測試中,我們很好的相互協助,分析不同的輸入情況,涵蓋了各種可能的意外,很快的完成了功能的完善; 下面是對輸入值的判斷是否允許的代碼 :    代碼如下: if (isNaN(theYear)|| theYear < 0) {   alert("輸入有誤,請重新輸入");   return ; }   if((theMonth == 2 && theDay > 29 && isLeapYear(theYear))||(theMonth == 2 && theDay > 28 && !isLeapYear(theYear))) {   alert("輸入有誤,請重新輸入");   return ; }    if((theMonth == 4 || theMonth == 6 || theMonth == 9 || theMonth == 11) && theDay == 31 ) {   alert("輸入有誤,請重新輸入");   return ; }   
copyright © 萬盛學電腦網 all rights reserved