求老师指导下
var year = parseInt(prompt("请输入您出生的年份")), month = parseInt(prompt("请输入您出生的月份"), ) day = parseInt(prompt("请输入您出生的日子")), yearDdy = (31, 28, 31, 30, 51, 30, 31, 31, 30, 31, 30, 31); //创建一个数组,包含的是每个月有多少天 var sum; var allDay; function jisuan() { //计算输入年份是否为闰年,是的话改变2月的天数 if (year % 4 == 0 && year % 10 != 0 || year % 400 == 0) { year[1] = 29; } for (var i = 0; i < month; i++) { sum += yearDdy[i] } allDay = sum + day; return allDay } alert("您的生日在" + year + "年" + ",在这一年的" + allDay + "天。")
思路是用数组包含每个月几天,然后判断输入的年份是否为闰年,是闰年的话就通过索引修改2月的天数,然后再通过索引把之前月份的天数加起来,再加上这个月的天数,返回一个总天数,目前问题是是返回的总天数是undefined,有点费解
0
收起
正在回答
2回答
同学你好,1、sum与allDay若是在定义不赋值的话,会是undefined,导致最后相加的时候错误,建议:可以先赋值为0,例:
2、定义数组这里,应该是中括号[],另,没有51天的天数,应该是31例:
3、调用函数得到的是函数的返回值,这里输出天数,应该调用函数。函数不调用的话,是无法执行的哦。例:
4、数组下标是从0开始的,而输出的月份,是有1月开始的,这里的月份应该减1,否则会把输入的月份的天数也添加上,但是输入的这个月还没有过完,不能按整月添加。例:
5、数组是yearDdy,所以这里应该改变yearDdy的值,例:
6、闰年的判断条件不够严谨,判断年份是否是闰年,需满足下列条件之一(两个条件同时存在,一个为真即可):
(1) 年份能整除4但是不能整除100
(2) 年份能整除400
希望能帮助到你,欢迎采纳。
祝学习愉快!
前端小白入门系列课程
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36712 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星