1:问题描述
通过输入年、月、日,使用函数完成给定日期这一天是本年中的第几天
2:解题思路
<1>年、月、日的获取问题
<2>用函数表示出年、月、日:
1:判断该年是否是闰年
2:用Switch...case...输入月份,可以计算出对应的天数,如果该年是闰年且月份大于二月,则天数多加一天
3:一月三月五月七月八月十月十二月都是31天,四月六月九月十一月都是30天,闰年二月29天,平年二月28天
<3>输出该年该月该日是本年的第几天
3:每步骤对应的代码
<1>年、月、日的获取问题
var year = parseInt(prompt("请输入年份"));
var month = parseInt(prompt("请输入月份"));
var day = parseInt(prompt("请输入第几天"));
<2>用函数表示出年、月、日:
1:判断该年是否是闰年
function isLeapYear(year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return true;
} else {
return false;
}
}
2:用Switch...case...输入月份,可以计算出对应的天数,如果该年是闰年且月份大于二月,则天数多加一天
function getDayByDate(year, month, day) {
var days = 0;
switch (month) {
case 12:
// 11月的天数
days += 30
case 11:
// 10月的天数
days += 31
case 10:
// 9月的天数
days += 30
case 9:
// 8月的天数
days += 31
case 8:
// 7月的天数
days += 31
case 7:
// 6月的天数
days += 30
case 6:
// 5月的天数
days += 31
case 5:
// 4月的天数
days += 30
case 4:
// 3月的天数
days += 31
case 3:
// 2月的天数
days += 28
case 2:
// 1月的天数
days += 31
case 1:
days += day
break;
default:
break;
}
if (isLeapYear(year) && month > 2) {
days += 1
}
return days
}
<3>输出该年该月该日是本年的第几天
document.write(getDayByDate(year, month, day))
4:重难点总结
先利用函数分析该年是否是闰年,注意:闰年二月比平年二月多一天,把月份转换为天数,用Switch...case...来表示天数,删除break可以往下继续运行循环代码,合理利用有参数有返回值的函数来实现每个月天数的实现
5:完整代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>作业2:使用函数完成给定日期2024 0420这一天是本年中的第几天</title>
<script>
function isLeapYear(year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return true;
} else {
return false;
}
}
function getDayByDate(year, month, day) {
var days = 0;
switch (month) {
case 12:
// 11月的天数
days += 30
case 11:
// 10月的天数
days += 31
case 10:
// 9月的天数
days += 30
case 9:
// 8月的天数
days += 31
case 8:
// 7月的天数
days += 31
case 7:
// 6月的天数
days += 30
case 6:
// 5月的天数
days += 31
case 5:
// 4月的天数
days += 30
case 4:
// 3月的天数
days += 31
case 3:
// 2月的天数
days += 28
case 2:
// 1月的天数
days += 31
case 1:
days += day
break;
default:
break;
}
if (isLeapYear(year) && month > 2) {
days += 1
}
return days
}
var year = parseInt(prompt("请输入年份"));
var month = parseInt(prompt("请输入月份"));
var day = parseInt(prompt("请输入第几天"));
document.write(getDayByDate(year, month, day))
</script>
</head>
<body>
</body>
</html>