问题:
JS使用函数、switch_case完成给定日期计算出这一天是本年中的第几天
解题思路:
1:弹窗接收日期,转变数值类型
var year = parseInt(prompt("请输入年:"));
var month = parseInt(prompt("请输入月:"));
var day = parseInt(prompt("请输入日:"));
2:判断是否为闰年
function leapYear(year){
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
return true;
}else{
return false;
}
}
3:用switch_case计算
function yearToDate(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(leapYear(year)){
days += 1
}
return days
}
完整代码展示:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>使用函数、switch_case完成给定日期2024 04 20 计算出这一天是本年中的第几天</title>
<script>
function leapYear(year){
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
return true;
}else{
return false;
}
}
function yearToDate(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(leapYear(year)){
days += 1
}
return days
}
var year = parseInt(prompt("请输入年:"));
var month = parseInt(prompt("请输入月:"));
var day = parseInt(prompt("请输入日:"));
document.write(year+"的第"+yearToDate(year,month,day)+"天")
</script>
</head>
<body>
</body>
</html>