请老师看看有什么问题

请老师看看有什么问题

<!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回答

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

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

  • Coolyang_ 提问者 #1
    昨天还没学到数组...
    2018-02-19 21:07:14
小丸子爱吃菜 2018-02-21 18:03:36

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

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

祝学习愉快!

提问者 Coolyang_ 2018-02-20 16:09:27


/* 计算天数 */

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];

}


  • 提问者 Coolyang_ #1
    count = count + newArr[i];
    2018-02-20 16:19:58
怎么都被占用了呢 2018-02-20 10:10:37

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

  • 提问者 Coolyang_ #1
    用数组的方法 /* 计算天数 */ 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]; } 将计算部分换成这个,老师看下有什么问题没
    2018-02-20 16:08:40
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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