程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,闰年且输入月份大于 3 时需考虑多加一天。
function yearSum(year,month,day){
var sum=0,leap=0;
switch (month){
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:console.log("data.errer");break;
}
if(month>=13){alert('月份不能大于12')}
else if(day>=32){alert('天数不能大于31')}
else if(year%400==0||(year%4==0&&year%100!=0)){
leap=1;
sum+=day;
}else{
leap=0;
sum+=day;
}
if(leap==1&&month>2){
sum++;
}
console.log(sum)
}
yearSum(1997,12,21)