1.问题描述
使用函数、switch_case完成给定日期2024.04.20这一天是本年中的第几天
2.解题思路
先输入年月日
用switch_case计算总共天数
假设二月有28天,判断是否是闰年,如果是闰年,月份超过二月的时候,总天数再加一
定义函数,调用函数,输出结果
3.每步骤对应的代码
先输入年月日
var year=parseInt(prompt("请输入年份:"))
var month=parseInt(prompt("请输入年份:"))
var day=parseInt(prompt("请输入年份:"))
用switch_case计算天数
switch (month) {
case 12:
days += 30;
case 11:
days += 31;
case 10:
days += 30;
case 9:
days += 31;
case 8:
days += 31;
case 7:
days += 30;
case 6:
days += 31;
case 5:
days += 30;
case 4:
days += 31;
case 3:
days += 28;
case 2:
days += 31;
case 1:
days += day
break;
default:
break;
}
二月天数不确定,判断年份是否是闰年
function isLeapYear(year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return true;
} else {
return false;
}
}
是闰年的话,只能月份大于二月才能加一天
if(isLeapYear(year)&&month){
days++
}
return days
某年某月某天是第几天
function getDaysByDate(year, month, day) {
var days = 0
switch (month) {
case 12:
days += 30;
case 11:
days += 31;
case 10:
days += 30;
case 9:
days += 31;
case 8:
days += 31;
case 7:
days += 30;
case 6:
days += 31;
case 5:
days += 30;
case 4:
days += 31;
case 3:
days += 28;
case 2:
days += 31;
case 1:
days += day
break;
default:
break;
}
if(isLeapYear(year)&&month){
days++
}
return days
}
最后输出
console.log()结果在控制台显示
document.write()结果在页面显示
document.write(year+"."+month+"."+day+"是本年的第"+getDaysByDate(year,month,day)+"天")
console.log(year+"."+month+"."+day+"是本年的第"+getDaysByDate(year,month,day)+"天")
4.重难点总结
4.1 switch_case 的应用
4.2 break 的应用
4.3 函数
函数定义
函数调用
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:
days += 30;
case 11:
days += 31;
case 10:
days += 30;
case 9:
days += 31;
case 8:
days += 31;
case 7:
days += 30;
case 6:
days += 31;
case 5:
days += 30;
case 4:
days += 31;
case 3:
days += 28;
case 2:
days += 31;
case 1:
days += day
break;
default:
break;
}
if(isLeapYear(year)&&month){
days++
}
return days
}
var year=parseInt(prompt("请输入年份:"))
var month=parseInt(prompt("请输入年份:"))
var day=parseInt(prompt("请输入年份:"))
document.write(year+"."+month+"."+day+"是本年的第"+getDaysByDate(year,month,day)+"天")
console.log(year+"."+month+"."+day+"是本年的第"+getDaysByDate(year,month,day)+"天")
</script>
</head>
<body>
</body>
</html>