1:问题描述
使用函数、switch_case完成给定日期2024 04 20 这一天是本年中的第几天
2:解题思路
<1>:要了解这一年是闰年还是平年,先给一个固定的年月日
<2>:用switch_case写出每月的天数
<3>:用函数把switch_case套入进去
<4>:写出输入的年月日
<5>:最后的天数
3:每步骤对应的代码
<1>:判断闰年和平年——下面是用函数写的
function isLeapYear(year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return true
} else {
return false
}
}
<2>:用switch_case写出每月的天数
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:
// 11月的天数
days += day
}
<3>:用函数把switch_case套入进去
function getDaysByDate(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:
// 11月的天数
days += day
}
if (isLeapYear(year) && month>2) {
days += 1
}
return days
}
这是年份是闰年时2月份加1。
if (isLeapYear(year) && month>2) {
days += 1
}
<4>:写出输入的年月日
var year = parseInt(prompt("请输入年:"))
var month = parseInt(prompt("请输入月:"))
var day = parseInt(prompt("请输入日:"))
<5>:最后的天数
console.log(getDaysByDate(year,month,day))
4:重点总结
<1>:判断闰年和平年
<2>:用switch_case写出每月的天数
<3>:函数的用法
<4>:闰年二月加1天的写法
<5>:年月日的输入
5:完整代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>作业2:使用函数、switch_case完成给定日期2024 04 20 这一天是本年中的第几天</title>
<script>
function isLeapYear(year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return true
} else {
return false
}
}
function getDaysByDate(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:
// 11月的天数
days += day
}
if (isLeapYear(year) && month>2) {
days += 1
}
return days
}
var year = parseInt(prompt("请输入年:"))
var month = parseInt(prompt("请输入月:"))
var day = parseInt(prompt("请输入日:"))
console.log(getDaysByDate(year,month,day))
</script>
</head>
<body>
</body>
</html>