Il devrait être nécessaire d'avoir une interaction et JS est choisi pour l'implémenter, qui peut être considéré comme un premier test de programmation par paire. J'ai écrit la partie d'affichage dans HTML, et la fonction de l'événement de déclenchement cliqué sur le bouton est Check ();
La copie de code est la suivante:
fonction oncheck () {
var année = document.getElementByid (année) .Value;
var mois = document.getElementById (mois);
var index1 = mois.selectedIndex;
var day = document.getElementById (jour);
var index2 = day.selectedIndex;
var theday = day.options [index2] .value;
// partie du jugement de valeur d'entrée
...
// appelle les fonctions de base
jours (Theyar, Themonth, theday);
}
Les jours de fonction principale sont les suivants:
La copie de code est la suivante:
jours de fonction (année, mois, jour) {
var jours = 0;
// Nombre de mois accumulés
pour (var i = 1; i <mois; i ++) {
commutateur (i) {
// La situation du grand mois est de 31 autres
Cas 1:
Cas 3:
Cas 5:
Cas 7:
Cas 8:
Cas 10:
Cas 12: {
jours + = 31;
casser;
}
// La situation de Xiaoyue ajoute 30
Cas 4:
Cas 6:
Cas 9:
Cas 11: {
jours + = 30;
casser;
}
// La situation en février sera ajoutée selon le type de l'année
Cas 2: {
if (isleapyear (année)) {
jours + = 29;
}
autre {
jours + = 28;
}
casser;
}
}
}
jour = jour * 1;
jours + = jour; // la somme du nombre de jours plus le nombre de jours
Var Date0 = nouvelle date (année, 0,1);
// alert (date0.getDay ());
VAR DATE1 = NOUVELLE DATE (année, mois-1, jour);
// alerte ((jours + date0.getDay () + 6) / 7);
var nthofweek = math.floor ((jours + date0.getDay () + 6) / 7);
// alerte (nthofweek);
var Today = New Array ("Sunday", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi");
//day.getDay ();
alert ("Cette date est le" + jours + "/ n" + "de l'année est le" + nthofweek + "hebdomadaire" + aujourd'hui [date1.getDay ()]);
}
Au cours du processus de débogage, de nombreuses erreurs inattendues ont été rencontrées, telles que les erreurs de calcul causées par un décalage de type, telles que l'arrondi des nombres;
Avec l'aide de ses coéquipiers, il est responsable de l'examen et de l'aide à la capture de bogues, et je suis responsable de la mise en œuvre et du codage;
Dans la dernière partie, dans le test des valeurs d'entrée, nous nous aidons bien, analysons différentes situations d'entrée, couvrions divers accidents possibles et terminons rapidement l'amélioration des fonctions;
Voici le code pour déterminer si la valeur d'entrée est autorisée:
La copie de code est la suivante:
if (isnan (theyear) || theyear <0) {
alert ("l'entrée est incorrecte, veuillez rentrer");
retour ;
}
if ((themonth == 2 && theDay> 29 && isleapyear (theyear)) || (themonth == 2 && theDay> 28 &&! Isleapyear (theyear))) {
alert ("l'entrée est incorrecte, veuillez rentrer");
retour ;
}
if ((themonth == 4 || themonth == 6 || themonth == 9 || themonth == 11) && theDay == 31) {
alert ("l'entrée est incorrecte, veuillez rentrer");
retour ;
}