请老师看看有什么问题

来源:1-20 作业题

Coolyang_

2018-02-18 21:29:13

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js计算自己出生那天是该年当中第几天</title>
<script type="text/javascript">
/* 定义变量 */
var year, month,day;
/* 输入框弹窗的函数 */
function input() {
year = prompt("请输入您的出生年份");
month = prompt("请输入您的出生月份");
day = prompt("请输入您的出生日期");
if (month > 12 || month < 1 || day > 31 || day < 1) {
alert("输入错误!");
}
}

/* 计算天数的函数 */
function myFunction(year, month, day) {

year = parseInt(year);
month = parseInt(month);
day = parseInt(day);
var count = day; // 这里先将日期的天数赋值给count,例如,输入的日期为6.30, 则将30赋值给count,这样只要再将count依次加上1~5月份的天数即可算出在全年的第几天

/* 计算天数 */
for (var i = 1; i < month; i++) { // i从1开始,如果输入的month为1,则不执行循环
if (i ==1 || i ==3 || i ==5 || i ==7 || i ==8 || i ==10 || i ==12) {
count = count + 31;
}
if (i == 2) {
count = count + 28;
}
if (i ==4 || i ==6 || i ==9 || i ==11) {
count = count +30;
}
}

/* 判断是否是闰年 */
if ( (year % 100 != 0 && year % 4 == 0 ) || (year % 100 == 0 && year % 400 == 0)) {
if (month > 2) {  // 如果是闰年,并且月份大于2
count=count + 1;
}
}

return count; // 返回计算结果count

}

input();
var n = myFunction(year, month, day); // 存储myFunction返回的值
document.write("您的生日在"+year+"年是第"+n+"天");
</script>
</head>
<body>

</body>
</html>


写回答

4回答

Miss路

2018-02-19

功能没有问题,但是条件中的这一块 (year % 100 == 0 && year % 400 == 0) 写的有点冗余,除以400能正处就可以了,不用再除以100了。

虽然效果没有问题,但是你的写法不是很好,比较麻烦,可以使用数组的形式来试试。祝学习愉快!

0
hoolyang_
h 昨天还没学到数组...
h018-02-19
共1条回复

小丸子爱吃菜

2018-02-21

代码运算的结果没有问题~

这类练习自己可以拿一组数尽心测试,运算结果跟自己之前的计算一样就是对的。

祝学习愉快!

0

Coolyang_

提问者

2018-02-20


/* 计算天数 */

var arr = [31,28,31,30,31,30,31,31,30,31,30,31];

var newArr = arr.slice(0,month-1);

for (var i = 0; i < newArr.length; i++) {

count = count + arr[i];

}


0
hoolyang_
h count = count + newArr[i];
h018-02-20
共1条回复

怎么都被占用了呢

2018-02-20

没关系的,学完数组之后,可以再来练习一个这个作业。继续加油~~

0
hoolyang_
h 用数组的方法 /* 计算天数 */ var arr = [31,28,31,30,31,30,31,31,30,31,30,31]; var newArr = arr.slice(0,month-1); for (var i = 0; i < newArr.length; i++) { count = count + arr[i]; } 将计算部分换成这个,老师看下有什么问题没
h018-02-20
共1条回复

0 学习 · 36712 问题

查看课程