对大月和小月进行判断

对大月和小月进行判断

var BirYear,BirMonth,BirDay;


function Ymd() {

    BirYear=parseInt(prompt("请输入您的出生年份"));

    BirMonth=parseInt(prompt("请输入您的出生月份"));

    BirDay=parseInt(prompt("请输入您的出生日期"));

    if(BirMonth=1||BirMonth=3||BirMonth=5||BirMonth=7||BirMonth=8||BirMonth=10||BirMonth=12){

BirDay<=31;

}else{

alert("最多只有31天");

}


if(BirMonth=4||BirMonth=6||BirMonth=9||BirMonth=11){

BirDay<=30;

}else{

alert("最多只有30天");

}   

}

Ymd();


var arr=[31,28,31,30,31,30,31,31,30,31,30,31]; //每个月份的天数

var day=0;





function WhDay() {

    if((BirYear%4==0&&BirYear%100!=0) || BirYear%400==0) {  //判断输入的年份是否为闰年

        arr[1]=29;

    }for(i=0;i<BirMonth-1;i++){

        day+=arr[i];

    }

    day+=BirDay;

};

WhDay(BirYear,BirMonth,BirDay);

document.write("您的生日在"+BirYear+"年"+"是第"+day+"天");

加了if去判断大小月后,程序就不能弹窗了,请老师指点。

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

先说两个粗心的问题:

1、这个你写的是中文状态下的标点,会报错,改成英文状态下的:

http://img1.sycdn.imooc.com//climg/5b611ac10001334e05900194.jpg

2、这里的两个if条件判断,里面的比较全部都是错误的,比较要用==,一个=表示赋值,属于语法错误:

http://img1.sycdn.imooc.com//climg/5b611afd000147db14470410.jpg

3、一个比较致命的问题,Ymd()方法里面的判断有问题,逻辑不对,你的两个判断,判断的是一件事儿, 就是不管你输入的是12个月里面的那个月,都会有弹窗,举个例子,假如是6月,上面的判断不成立,但是到下面的判断就会弹出BirDay<=30;,两个判断中的else根本不会执行,因为你的判断条件是月份,弹出的确实天数,这个逻辑不对。这里不需要做这个判断,你直接这么写就行:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8" />
    <title>Document</title>
</head>

<body>
    <script type="text/javascript">
    var BirYear, BirMonth, BirDay;
     BirYear = parseInt(prompt("请输入您的出生年份"));
        BirMonth = parseInt(prompt("请输入您的出生月份"));
        BirDay = parseInt(prompt("请输入您的出生日期"));
   
    var arr = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    //每个月份的天数
    var day = 0;
    function WhDay(BirYear, BirMonth, BirDay) {
        if ((BirYear % 4 == 0 && BirYear % 100 != 0) || BirYear % 400 == 0) {
            //判断输入的年份是否为闰年
            arr[1] = 29;
        }
        for (i = 0; i < BirMonth - 1;i++) {
            day += arr[i];
        }
        day += BirDay;
    };
    WhDay(BirYear, BirMonth, BirDay);
    document.write("您的生日在" + BirYear + "年" + "是第" + day + "天");
    // 加了if去判断大小月后, 程序就不能弹窗了, 请老师指点。
    </script>
</body>

</html>

如果帮助到了你,欢迎采纳!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
JavaScript基础入门 2018
  • 参与学习       547    人
  • 提交作业       206    份
  • 解答问题       640    个

JavaScript作为前端学习中的一个重要组成部分,本课程将带领你从最基础的语法开始,学习js的流程控制语句、函数、内置对象、DOM基础、DOM事件、BOM基础以及经典的js案例--轮播图。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师