1、问题描述:输入年月日,判断这是这一年的第几天并输出
2、解题思路:获取年月日,使用switch函数算出天数,判断是不是闰年,闰年天数+1,输出天数
使用弹框获取年月日
var year = parseInt(prompt("请输入年份"));
var month = parseInt(prompt("请输入月"));
var day = parseInt(prompt("请输入日"));
使用switch语句,计算出输入月份的天数 ,不用break停止,就可以向下加天数赋值
如果是闰年就在天数上+1
返回天数
switch (month) {
case 12:
// 12月的天数
days += 30
case 11:
// 11月的天数
days += 31
case 10:
// 10月的天数
days += 30
case 9:
// 9月的天数
days += 31
case 8:
// 8月的天数
days += 31
case 7:
// 7月的天数
days += 30
case 6:
// 6月的天数
days += 31
case 5:
// 5月的天数
days += 30
case 4:
// 4月的天数
days += 31
case 3:
// 3月的天数
days += 28
case 2:
// 1月的天数
days += 31
case 1:
// 当月的天数
days += day
break;
default:
break;
}
if (isLeapYear(year&&month>2)) {
days += 1
}
return days
}
用函数判断是不是闰年,闰年二月比平年多一天
function isLeapYear(year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return true
} else {
return false
}
}
在页面上输出天数
document.write(year+"."+month+"."+day+"这是今年的第"+getDaysByDate(year, month, day)+"天")
3、疑难点: 使用switch时要从下往上写,不使用break,月份就可以使用下面的赋值
闰年的判断,闰年二月+1,获取的月份不足2时,就不用+1
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></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:
// 12月的天数
days += 30
case 11:
// 11月的天数
days += 31
case 10:
// 10月的天数
days += 30
case 9:
// 9月的天数
days += 31
case 8:
// 8月的天数
days += 31
case 7:
// 7月的天数
days += 30
case 6:
// 6月的天数
days += 31
case 5:
// 5月的天数
days += 30
case 4:
// 4月的天数
days += 31
case 3:
// 3月的天数
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(year+"."+month+"."+day+"这是今年的第"+getDaysByDate(year, month, day)+"天")
</script>
</head>
<body>
</body>
</html>