首頁 >web前端 >js教程 >js實作日曆可獲得指定日期週數及星期幾範例分享(js取得星期幾)_基礎知識

js實作日曆可獲得指定日期週數及星期幾範例分享(js取得星期幾)_基礎知識

WBOY
WBOY原創
2016-05-16 16:55:391102瀏覽

應為要有交互,選擇了Js來實現,也算是 結對程式設計 的初試吧。 我將顯示部分用html 寫好,點擊的按鈕觸發事件函數是check();

複製程式碼 程式碼如下:

function onCheck(){


function onCheck(){


function onCheck(){ .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);

}


複製程式碼


程式碼如下:


function days( >    var days = 0;  //表示改日期為當年的第幾天
    //累積月天數
    for(var i = 1; i   for(var i = 1; i   
    //大月的狀況加上31
    case 1:
    case 3:
    case 5: case 12:{
    days = 31;
    break;
    }
    //小月9:
    case 11:{
    days = 30;
    break;
    }
     if(isLeapYear (year)){
        days = 29; //閏年加29
        }
           }
          }
    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 "天 " "     是第" nthOfWeek "週的" toDay[date1.getDay()]);
}



調試過程中遇到了許多意外的錯誤,如類型的不匹配帶來的計算錯誤,如數字的捨入問題;

在隊友的協助下,他負責審核和協助抓蟲子,我負責實施和編碼;在最後一個環節,對輸入值的測試中,我們很好的相互協助,分析不同的輸入情況,涵蓋了各種可能的意外,很快的完成了功能的完善;

以下是對輸入值的判斷是否允許的程式碼:


複製程式碼 代碼如下:if (isNaN(theYear)|| theYear   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 ;

}


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn