为了账号安全,请及时绑定邮箱和手机立即绑定

根据输入的年、月、日,计算出出生那天是该年的第几天

根据输入的年、月、日,计算出出生那天是该年的第几天

程序学习袁 2017-04-13 13:45:34
var years=prompt("请输入您的出生年份"); var months=prompt("请输入您的出生月份"); var days=prompt("请输入您的出生日期"); //判断用户输入格式 function userText(){     if(isNaN(years) && isNaN(months) && isNaN(days)){         alert("必须输入数字");         return false;     }     if(!(years&&months&&days)){         alert("不能为空");         return false;     }     if(months<=0 || months>12){         alert("请输入正确的月份!");         return false;     }else{     return true;} } //判断闰年 function isLeapYear(){     return (years%4==0 && years%100!=0 || years%400==0) } // 整理每个月的天数 var monthDay=[31,28,31,30,31,30,31,31,30,31,30,31]; var monthnub=parseInt(months); function numDay(){     switch(parseInt(months)){                  case 1:         return parseInt(days);         break;         case 2:         return parseInt(days)+monthDay[0];         break;           if(isLeapYear()){               monthDay[1]=29;           }         case 3:         return parseInt(days)+monthDay[0]+monthDay[1];         break;         case 4:         return parseInt(days)+monthDay[0]+monthDay[1]+monthDay[2];         break;         case 5:         return parseInt(days)+monthDay[0]+monthDay[1]+monthDay[2]+monthDay[3];         break;         case 6:         return parseInt(days)+monthDay[0]+monthDay[1]+monthDay[2]+monthDay[3]+monthDay[4];         break;         case 7:         return parseInt(days)+monthDay[0]+monthDay[1]+monthDay[2]+monthDay[3]+monthDay[4]+monthDay[5];         break;         case 8:         return parseInt(days)+monthDay[0]+monthDay[1]+monthDay[2]+monthDay[3]+monthDay[4]+monthDay[5]+monthDay[6];         break;         case 9:         return parseInt(days)+monthDay[0]+monthDay[1]+monthDay[2]+monthDay[3]+monthDay[4]+monthDay[5]+monthDay[6]+monthDay[7];         break;         case 10:         return parseInt(days)+monthDay[0]+monthDay[1]+monthDay[2]+monthDay[3]+monthDay[4]+monthDay[5]+monthDay[6]+monthDay[7]+monthDay[8];         break;         case 11:         return parseInt(days)+monthDay[0]+monthDay[1]+monthDay[2]+monthDay[3]+monthDay[4]+monthDay[5]+monthDay[6]+monthDay[7]+monthDay[8]+monthDay[9];         break;         case 12:         return parseInt(days)+monthDay[0]+monthDay[1]+monthDay[2]+monthDay[3]+monthDay[4]+monthDay[5]+monthDay[6]+monthDay[7]+monthDay[8]+monthDay[9]+monthDay[10];         break;     } } numDay(); isLeapYear(); userText(); document.write("你的生日是在" + years + "年的第" + numDay()+ "天");请问numDay()里面的函数该如何简化,实在是js很新很新的新人。麻烦大牛修改一下,能让我看得懂的方法
查看完整描述

3 回答

已采纳
?
qq_青枣工作室_0

TA贡献446条经验 获得超754个赞

var years=prompt("请输入您的出生年份");
var months=prompt("请输入您的出生月份");
var days=prompt("请输入您的出生日期");
function numDay() {
  // 与当年的第一天的时间差值,得到天数
  return (new Date(years,months-1,days).getTime()-new Date(years,0,1).getTime())/(24*3600*1000)+1;
}
document.write("你的生日是在" + years + "年的第" + numDay()+ "天");

你那些太烦了 直接给你写个

查看完整回答
10 反对 回复 2017-04-13
?
我爱吃牛排

TA贡献47条经验 获得超127个赞

var year=parseInt(prompt("请输入您的出生年份"));
var month=parseInt(prompt("请输入您的出生月份"));
var day=parseInt(prompt("请输入您的出生日期"));
var num;
    switch(month){
        case 1:  num=0; break;
        case 2:  num=31; break;
        case 3:  num=59; break;
        case 4:  num=90; break;
        case 5:  num=120;break;
        case 6:  num=151;break;
        case 7:  num=181;break;
        case 8:  num=212;break;
        case 9:  num=243;break;
        case 10: num=273;break;
        case 11: num=304;break;
        case 12: num=334;break;
    }
    num = num + day;
    if(year%4==0&&year%100!=0||year%400==0){
        if(month>3){
            num++;
        }
    }
document.write("你的生日是在" + year + "年的第" + num+ "天");

你那些太烦了 直接给你写个

查看完整回答
6 反对 回复 2017-04-13
  • 3 回答
  • 2 关注
  • 4425 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信