1-14作业 这个函数这样写哪里错了

1-14作业 这个函数这样写哪里错了

function x(){
	       if (year%4==0 && year%100!=0 || year%400==0) {
                date=new Array(31,29,31,30,31,30,31,31,30,31,30,31);	
            }else{
            	date=new Array(31,28,31,30,31,30,31,31,30,31,30,31); 	                	
            }
            for (var i = 0; i<=(month-1); i++) {
            	a=+date[i];
            }
            b=a+day;
        }

是哪里错了吗..后面输出页面没反应

正在回答

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

2回答

盆友,可以将你的代码全部上传吗?这样测不出啊,或者是你可以提交作业给老师,让老师帮你看一下,(#^.^#)

  • lingshi 提问者 #1
    已经在下面添加了全部的~
    2018-01-30 12:49:43
  • bbbboom 回复 提问者 lingshi #2
    我测试了你的新代码,有以下几个问题: (1)接收年月日输入的值(year,month,day)时正常为字符串类型,需要转换成整型,如果不转换就变成了字符串拼接,天数计算结果就是错的。 (2)代码中for循环计算天数的条件错误( i<=month-1),这个应该是(i<month-1),计算的是输入月份的前几个月总和,不包括本月。 (3)代码中( a=+date[i];)这个计算应该是写错了吧,其实a,b变量都是不需要的,可以看看我给你修改的代码: <script> function log() { year = parseInt(prompt("请输入您的出生年份")), month = parseInt(prompt("请输入您的出生月份")), day = parseInt(prompt("请输入您的出生日期")); } function x() { if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { date = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); } else { date = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); } for (var i = 0; i < month - 1; i++) { day += date[i]; } } log(); x(); document.write("您的生日在" + year + "年的第" + day + "天"); </script> 如果还有问题,可以回复哦!我们一起加油!ヾ(◍°∇°◍)ノ゙
    2018-01-30 14:37:46
  • lingshi 提问者 回复 bbbboom #3
    改完后可以了0-0!非常感谢!!!
    2018-01-30 15:37:06
提问者 lingshi 2018-01-30 12:50:45
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>1-14作业</title>
</head>
<body>
    <script>
    function log(){
          year=prompt("请输入您的出生年份"),
           month=prompt("请输入您的出生月份"),
           day=prompt("请输入您的出生日期");
    }

    function x(){
       if (year%4==0 && year%100!=0 || year%400==0) {
                date=new Array(31,29,31,30,31,30,31,31,30,31,30,31);
            }else{
             date=new Array(31,28,31,30,31,30,31,31,30,31,30,31);                   
            }
            for (var i = 0; i<=month-1; i++) {
             a=+date[i];
            }
            b=a+day;
        }         
        log();
        x();


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

   
</script>
</body>
</html>

我删掉几个空行可以输出了,但是输出结果不对...麻烦帮忙看看谢谢!

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

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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