请老师检查下代码有什么问题

请老师检查下代码有什么问题

方法比较笨....

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Document</title>

</head>

<body>

<script type="text/javascript">

var getYear=prompt("请输入您的出生年份"); //接收用户输入的年份

var getMon=prompt("请输入您的出生月份"); //接收用户输入的月份

var getDay=prompt("请输入您的出生日期"); //接收用户输入的日期

var sum=0,monDay,days,months;


days=parseInt(getDay); //将接收到日期取整

months=parseInt(getMon); //将接收到月份取整

years=parseInt(getYear); //将接收到年份取整


function staDay(){ //假设年份是平年输出每月一年当中的第几天

switch(months){

case 1:

monDay=0;

break;

case 2:

monDay=31;

break;

case 3:

monDay=59;

break;

case 4:

monDay=90;

break;

case 5:

monDay=120;

break;

case 6:

monDay=151;

break;

case 7:

monDay=181;

break;

case 8:

monDay=212;

break;

case 9:

monDay=243;

break;

case 10:

monDay=273;

break;

case 11:

monDay=304;

break;

case 12:

monDay=334;

break;

}

return monDay;

}


function print(){ //判断是否为闰年

if(((years%4==0 && years%100!=0) || years%400==0) && months>2){

sum=days+staDay(months)+1;

return sum;

}else{

sum=days+staDay(months);

return sum;

}

}


var result=print(years);


document.write("您的生日在"+years+"年的第"+parseInt(result)+"天");

</script>

</body>

</html>


正在回答

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

2回答

效果实现了呢 ,建议直接在获取弹窗上面整数转换更简洁 :

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

弹窗的代码也可以封装成一个函数 , 并在函数中调用计算日期的函数 ,把年月日作为参数传递给计算日期的函数使用 , 更利于代码的封装复用哦

祝学习愉快 ,望采纳

  • Liiiu 提问者 #1
    弹窗的代码封装什么意思,有些没有理解,是这样吗? function date(){ getYear=parseInt(prompt("请输入您的出生年份")); //接收用户输入的年份并取整 getMon=parseInt(prompt("请输入您的出生月份")); //接收用户输入的月份并取整 getDay=parseInt(prompt("请输入您的出生日期")); }
    2018-08-09 13:51:02
  • Liiiu 提问者 #2
    感觉封装后反而更麻烦了
    2018-08-09 13:51:42
  • 好帮手慕夭夭 回复 提问者 Liiiu #3
    没错哦 , 定义一个函数 ,把弹窗的代码封装起来 ,这样代码看起来整洁 , 少量代码是看不出什么优点 ,但是代码很多的话 , 每个功能都是要代码封装起来 , 如果那里想使用的话 ,直接调用函数就可以了 哦
    2018-08-09 13:58:16
好帮手慕夭夭 2018-08-09 14:43:32

同学参考如下哦 ,祝学习愉快 ,望采纳

<!DOCTYPE html>


<html>


<head>


<meta charset="UTF-8">


<title>Document</title>


</head>


<body>


<script type="text/javascript">


getDate() ;

function getDate() {

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

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

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

    staDay(years, months,days )

}


function staDay(years, months,days) { //假设年份是平年输出每月一年当中的第几天

    var sum = 0,

    monDay;


    switch (months) {


    case 1:


        monDay = 0;


        break;


    case 2:


        monDay = 31;


        break;


    case 3:


        monDay = 59;


        break;


    case 4:


        monDay = 90;


        break;


    case 5:


        monDay = 120;


        break;


    case 6:


        monDay = 151;


        break;


    case 7:


        monDay = 181;


        break;


    case 8:


        monDay = 212;


        break;


    case 9:


        monDay = 243;


        break;


    case 10:


        monDay = 273;


        break;


    case 11:


        monDay = 304;


        break;


    case 12:


        monDay = 334;


        break;


    }


    // return monDay;

    if (((years % 4 == 0 && years % 100 != 0) || years % 400 == 0) && months > 2) {


        monDay = days + monDay + 1;


        // return sum;


    } else {


        monDay = days + monDay;


        // return sum;


    }


    document.write("您的生日在" + years + "年的第" + monDay + "天");

}



</script>


</body>


</html>


  • 提问者 Liiiu #1
    还是不行... <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script type="text/javascript"> date(); function date(){ var getYear=parseInt(prompt("请输入您的出生年份")); //接收用户输入的年份并 var getMon=parseInt(prompt("请输入您的出生月份")); //接收用户输入的月份 var getDay=parseInt(prompt("请输入您的出生日期")); //接收用户输入的日期 staDay(getYear,getMon,getDay); } var sum=0,monDay; function staDay(getYear,getMon,getDay){ //假设年份是平年输出每月一年当中的第几天 switch(getMon){ case 1: monDay=0; break; case 2: monDay=31; break; case 3: monDay=59; break; case 4: monDay=90; break; case 5: monDay=120; break; case 6: monDay=151; break; case 7: monDay=181; break; case 8: monDay=212; break; case 9: monDay=243; break; case 10: monDay=273; break; case 11: monDay=304; break; case 12: monDay=334; break; } return monDay; } function print(){ //判断是否为闰年 if(((getYear%4==0 && getYear%100!=0) || getYear%400==0) && getMon>2){ sum=getDay+staDay(getDay)+1; return sum; }else{ sum=getDay+staDay(getMon); return sum; } } var result=print(getYear); document.write("您的生日在"+getYear+"年的第"+parseInt(result)+"天"); </script> </body> </html>
    2018-08-09 15:08:41
  • 提问者 Liiiu #2
    我计算闰年的方法也封装成函数了,现在怎样也调用不了。不懂staDay(getYear,getMon,getDay);这行代码为什么参数要这么多,staDay()这个函数只是需要导入月份就行,参数添加getYear和getDay这不混乱了吗
    2018-08-09 15:12:28
  • 好帮手慕夭夭 回复 提问者 Liiiu #3
    同学把老师上传的代码复制到本地完整的看一下哦 , 你上传的代码中后面都没有修改呢 .
    2018-08-09 15:14:29
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

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

在线咨询

领取优惠

免费试听

领取大纲

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