1-14作业
来源:3-16 String综合应用
慕粉2148041931
2017-12-13 19:56:18
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>1-14作业</title>
</head>
<body>
<script src="1-14js作业.js">
</script>
</body>
</html>
function years(years) {
// 年
while(true){
var y=prompt('请输入年份');
if (y>2017) {
alert('请输入正确的年份');
}else if (isNaN(y)) {
alert('年份必须是4位数字');
}else{
return parseInt(y);
}
}
}
function months(months) {
// 月
while(true){
var m=prompt('请输入月份');
if (isNaN(m)) {
alert('请输入1-12的数字');
}else if(m<1||m>12){
alert('请输入正确的月份');
}
else {
return parseInt(m);
}
}
}
function date(date) {
// 日
while(true){
var d=prompt('请输入日期');
if (isNaN(d)) {
alert('请输入2位数字');
}else if (d<1||d>31) {
alert('请输入正确的日期');
}else{
return parseInt(d);
}
}
}
function leapyears(leapyears) {
// 闰年?
var ly=false;
if (y%4==0&&y%100!=0||y%400==0) {
ly=true;
}
return ly;
}
function sums(months,date) {
// 总天数
var sums=0;
var m1=31,m2=28,m3=31,m4=30,m5=31,m6=30,m7=31,m8=31,m9=30,m10=31,m11=30,m12=31;
if (ly==true) {
m2=29;
}
switch(m){
case 1:
sums=d;
break;
case 2:
sums=m1+d;
break;
case 3:
sums=m1+m2+d;
break;
case 4:
sums=m1+m2+m3+d;
break;
case 5:
sums=m1+m2+m3+m4+d;
break;
case 6:
sums=m1+m2+m3+m4+m5+d;
break;
case 7:
sums=m1+m2+m3+m4+m5+m6+d;
break;
case 8:
sums=m1+m2+m3+m4+m5+m6+m7+d;
break;
case 9:
sums=m1+m2+m3+m4+m5+m6+m7+m8+d;
break;
case 10:
sums=m1+m2+m3+m4+m5+m6+m7+m8+m9+d;
break;
case 11:
sums=m1+m2+m3+m4+m5+m6+m7+m8+m9+m10+d;
break;
case 12:
sums=m1+m2+m3+m4+m5+m6+m7+m8+m9+m10+m11+d;
break;
}
return sums;
}
var y=years(),
m=months(),
d=date(),
ly=leapyears(),
sum=sums();
document.write('您的生日在'+y+'年是第'+sum+'天');
讲师点评:作业整体效果实现,建议如下:1. 使用外部JavaScript,脚本放在JS文件夹中。2. 根据代码情况,函数的的参数没有使用,所以在定义是可以去掉。3. 代码优化:计算日期的方法以及弹出窗口分为两个函数,在弹出窗口函数中输入相应的内容,然后将该值作为参数传给计算日期的方法。
老师,您点评的 3.代码优化······ 我没有明白是什么意思,能给出示一下代码吗?
1回答
小于飞飞
2017-12-14
关于函数的封装,思路可参考如下:
第一个函数:获取到年月日的变量值,调用计算年月日的函数,将这些变量作为参数传进去,然后输出结果。
第二个函数:计算年月日的函数,闰年的判断也在这里面进行,先判断是否该年是闰年,然后再进行计算。
结构如下:
function myinput() { var year=..., months=.... , day=....... var mysum=mysum(year,months,day); document.write('您的生日在'+y+'年是第'+sum+'天'); } mysum(year,months,day){ //判断闰年 if (y%4==0&&y%100!=0||y%400==0) { m2=29; } var m1=31,m2=28,m3=31,m4=30,m5=31,m6=30,m7=31,m8=31,m9=30,m10=31,m11=30,m12=31; switch(m)//switch语句 return sums; // 返回值 }
动手实践,加油。