我的代码有什么问题
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>闰年</title>
</head>
<body>
<script type="text/javascript">
var x=prompt("请输入您的出生年份"),
y=prompt("请输入您的出生月份"),
z=prompt("请输入您的出生日期");
function inner(x,y,z){
var i=1,
m=2,
num1=0,
num2=0,
num3=0;
for(i<y & !i%2==0;i+=2){
num1+=31;
}
for(m<y & m%2=0;m+=2){
num2+=30;
}
if(x%4==0){
num3=num2+num1+z-1;
}else if(!x%4==0){
num3=num2+num1+z-2;
}
document.write("您的生日是"+x+"年"+"的第"+num3+"天");
}
</script>
</body>
</html>
正在回答 回答被采纳积分+1
关于闰年的判断我的理解是:400可以分解成4和100,那也就是说如果是闰年就必须要可以被4整除,而被100整除只是区分这个闰年是普通闰年还是世纪闰年
综上所述:判断是不是闰年只需要判断是否可以被4整除这一个条件就可以了。
同学你好, 代码这个的问题如下
for循环中必须使用两个封号分隔变量, 条件和执行语句, 示例: for(语句1; 语句2 ; 语句3 ){}
第二个for循环中 判断m%2需要写等于号(==), 你这里写成了赋值号(=)
大月(31)和小月(30)判断不对, 1,3,5,7,8,10,12这几个月份为31天,所以使用与2取余操作是不可以的
闰年判断条件不对。能被4整除而不能被100整除或者被400整除的年份为闰年
prompt()获取的内容是字符串,后面计算天数时,字符串与其他内容相加会默认进行字符串拼接,所以为了避免这个问题,可以弹窗上面使用parseInt()把字符串转换为数值。
声明的函数inner, 没有调用
老师这里提供一个示例代码。 可以参考下图代码中注释理解
function inner() { // 获取用户输入的年月日 var year = prompt("请输入您出生的年份"), month = prompt("请输入您出生的月份"), // 对输入的天数进行数值转换操作 day = parseInt(prompt("请输入您出生的日期")), sum = 0; // 判断闰年,是闰年的话将二月份的天数加一 if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { arguments[1] = 29; } // 循环月份,将以前的月份天数先累加起来 for (var i = 0; i < month - 1; a++) { sum += arguments[i]; } // 加上当前月份中的天数 var result = sum + day; document.write("您的生日在" + year + "年的第" + result+ "天") } // 调用函数, 传入对应的月份,在函数中使用arguments获取参数 inner(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
老师这里也只是提供一个参考,问答区域经常会有一些同学分享自己的代码。 甚至有一些同学思路比老师提供的示例代码要好。 同学也可以去问答区学习一下 . 同时别人出现的问题 ,踩过的坑 , 也是可以吸取一下经验 ,这样自己能够避免自己出现类似问题 . 对自己也是有很多帮助的哦
如果帮助到了你, 欢迎采纳!
祝学习愉快~~·
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星