老师,为什么我写的脚本代码算出1988年9月25日是这一年的第268天?

老师,为什么我写的脚本代码算出1988年9月25日是这一年的第268天?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>无标题文档</title>

<script>

var year=prompt("请输入您的出生年份"),month=prompt("请输入您的出生月份"),day=prompt("请输入您的出生日期"),month_day=[0,31,29,31,30,31,30,31,31,30,31,30],sum=0;

function DAY(year,month,day){

for(var i=1;i<=parseInt(month);i++){

sum+=parseInt(day)+month_day[i-1];//求一年中的第几天

}

if(year%4==0 && year%100!=0 || year%400==0)//判断是否是闰年,如果是则返回sun-1,否则返回sum

{

return sum-1;

}

else{

return sum;

}

}

function alertwindow(year,month,day){

sum = DAY(year,month,day)

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

}

alertwindow(year,month,day);//调用函数

</script>

</head>


<body>

</body>

</html>


正在回答

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

2回答

我帮你分析一下你的错误,首先每个月的天数从1月开始加,直到输入月份的前一个月即可。

而且在循环内,不要每次都将输入的天数加上,这会导致结果比预期值大。

最后闰年且大于2月份的时候,2月份29天,平年28天,所以-1要放在平年中

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

  • 嘿嘿嘿等 提问者 #1
    非常感谢!我之前以为闰年是2月28天,平年是2月29天。
    2018-03-26 17:21:40
正在想名字呢 2018-03-26 11:30:57

你虽然做了闰年平年的判断,但是在最后打印的时候并没有进行操作呀document.write("您的生日在"+year+"年的第"+sum+"天");打印的是没有被判断的天数,改了你的代码,你可以参考一下:

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

请采纳

  • 提问者 嘿嘿嘿等 #1
    我用变量sum来接收返回的值,这样打印的sum就不是之前没有的没有进行判断的了,不知这样理解哪里错了,请指出!感谢
    2018-03-26 13:09:40
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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