Heim >Web-Frontend >js-Tutorial >js implementiert den Kalender, um das angegebene Datum, die Wochennummer und den Wochentag zu erhalten. Beispielfreigabe

js implementiert den Kalender, um das angegebene Datum, die Wochennummer und den Wochentag zu erhalten. Beispielfreigabe

高洛峰
高洛峰Original
2017-02-06 10:47:301133Durchsuche

Da es eine Interaktion gibt, habe ich mich für die Implementierung von Js entschieden. Dies kann als der erste Versuch der Paarprogrammierung angesehen werden. Ich habe den Anzeigeteil in HTML geschrieben: 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); 
}

Die Kernfunktionstage sind wie folgt:

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()]);
}

Ich bin dabei auf viele Unfälle gestoßen der Debugging-Prozess Fehler, wie z. B. Berechnungsfehler, die durch Typkonflikte verursacht werden, wie z. B. Zahlenrundungsprobleme
Mit der Unterstützung von Teamkollegen ist er für die Überprüfung und Unterstützung bei der Fehlererkennung verantwortlich, und ich bin für die Implementierung und Codierung verantwortlich 🎜> Im letzten Test des Eingabewerts haben wir uns gegenseitig sehr gut unterstützt, verschiedene Eingabesituationen analysiert, verschiedene mögliche Unfälle abgedeckt und die Funktionsverbesserung schnell abgeschlossen.
Das Folgende ist die Beurteilung des Eingabewerts . Zulässige Codes:

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 ;
}
Weitere Informationen zur js-Implementierung des Kalenders finden Sie auf der PHP-Chinese-Website !

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn