Deve ser necessário ter interação e o JS é escolhido para implementá -lo, que pode ser considerado como um primeiro teste de programação de pares. Eu escrevi a peça de exibição no HTML e a função de evento de gatilho clicada com botão é check ();
A cópia do código é a seguinte:
função onncheck () {
VAR ANO = Document.getElementById (Ano) .Value;
var mês = document.getElementById (mês);
var index1 = mês.SelectedIndex;
var dia = document.getElementById (dia);
var index2 = Day.SelectedIndex;
var theday = dia.options [index2] .Value;
// Parte do julgamento do valor de entrada
...
// chamando funções principais
dias (eles, que, aquilo, o dia);
}
Os dias da função principal são os seguintes:
A cópia do código é a seguinte:
dias de função (ano, mês, dia) {
var dias = 0;
// Número acumulado de meses
for (var i = 1; i <mês; i ++) {
Switch (i) {
// A situação do grande mês é mais 31
Caso 1:
Caso 3:
Caso 5:
Caso 7:
Caso 8:
Caso 10:
Caso 12: {
dias += 31;
quebrar;
}
// A situação de Xiaoyue adiciona 30
Caso 4:
Caso 6:
Caso 9:
Caso 11: {
dias += 30;
quebrar;
}
// A situação em fevereiro será adicionada de acordo com o tipo de ano
Caso 2: {
if (isleapyear (ano)) {
dias += 29;
}
outro {
dias += 28;
}
quebrar;
}
}
}
dia = dia * 1;
dias += dia;
var date0 = nova data (ano, 0,1);
// alert (date0.getday ());
var date1 = nova data (ano, mês-1, dia);
// alerta ((dias + date0.getday () + 6)/7);
var nthofweek = math.floor ((dias + date0.getday () + 6)/7);
// alerta (NthofWeek);
Var Today = New Array ("Sunday", "Segunda -feira", "Terça -feira", "Quarta -feira", "Quinta -feira", "Friday", "Saturday");
//day.getday ();
alerta ("Esta data é o"+dias+"dia/n"+"do ano é o"+nthofweek+"semanal"+hoje [date1.getday ()]);
}
Durante o processo de depuração, muitos erros inesperados foram encontrados, como erros de cálculo causados por incompatibilidade de tipo, como arredondamento de números;
Com a assistência de seus companheiros de equipe, ele é responsável por revisar e ajudar na captura de bugs, e sou responsável pela implementação e codificação;
Na última parte, no teste dos valores de entrada, nos ajudamos bem, analisamos diferentes situações de entrada, cobrimos vários acidentes possíveis e concluímos rapidamente a melhoria das funções;
A seguir, é apresentado o código para determinar se o valor de entrada é permitido:
A cópia do código é a seguinte:
if (isnan (eles) || eles são <0) {
alerta ("A entrada está incorreta, por favor, entre novamente");
retornar ;
}
if ((themonth == 2 && theday> 29 && isleapyear (eles)) || (themonth == 2 && theday> 28 &&! isleapyear (eles))) {
alerta ("A entrada está incorreta, por favor, entre novamente");
retornar ;
}
if ((themonth == 4 || thenth == 6 || theOnth == 9 || theOnth == 11) && theday == 31) {
alerta ("A entrada está incorreta, por favor, entre novamente");
retornar ;
}