Maison > interface Web > js tutoriel > le corps du texte

js implémente le calendrier pour obtenir la date, le numéro de semaine et le jour spécifiés. Exemple de partage.

高洛峰
Libérer: 2017-02-06 10:47:30
original
1091 Les gens l'ont consulté

Parce qu'il y a une interaction, j'ai choisi Js pour l'implémenter. Cela peut être considéré comme le premier essai de programmation en binôme. J'ai écrit la partie d'affichage en HTML. La fonction d'événement déclencheur du bouton cliqué est 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); 
}
Copier après la connexion

Les jours de fonction principale sont les suivants :

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()]);
}
Copier après la connexion

J'ai rencontré de nombreux accidents pendant le processus de débogage Erreurs, telles que les erreurs de calcul causées par une inadéquation de type, telles que des problèmes d'arrondi des nombres
Avec l'aide de ses coéquipiers, il est responsable de l'examen et de l'aide à la détection des bogues, et je suis responsable de la mise en œuvre et du codage < ; 🎜> Dans le dernier lors du test de la valeur d'entrée, nous nous sommes très bien entraidés, avons analysé différentes situations de saisie, couvert divers accidents possibles et terminé rapidement l'amélioration de la fonction
Ce qui suit est le jugement de la valeur d'entrée ; . Codes autorisés :

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 ;
}
Copier après la connexion
Pour une implémentation plus js du calendrier, vous pouvez obtenir la date, le numéro de la semaine et le jour de la semaine spécifiés. Par exemple, pour partager des articles connexes, veuillez faire attention au site Web PHP chinois. !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal