按年/月/日的顺序输入一个任意日期,在页面输出:这是这一年的第几天
*如:2016年1月2日 是2016年的第2天,而2016年12月31日则是2016年的第366天(因为闰年会多一天)
大概解题思路:
1、先判断年份月份输入是否正确
2、年份月份输入正确,判断月份是大小还是小月还是2月
3、根据大月小月判断每月的天数,2月先判断是闰年还是平年,再来判断天数
4、在大月的时候,在是闰年的情况下,判断用户输入的月份是否大于3,大于3月,天数自增1
<script type="text/javascript">
// 申明变量年、月、日、天数
var year = parseInt(prompt("请输入年份"));
var month = parseInt(prompt("请输入月份(1-12)"));
var day = parseInt(prompt("请输入日期"));
//创建一个函数对象
var fun = new Function("alert('您输入的日期不符合规则!请重新输入')");
var count;
if (year > 0) {
// 年份输入正确
if (month > 0 && month < 13) {
//月份输入正确
switch (month) {
case 1:
count = day;
break;
case 2:
count = 31 + day;
break;
case 3:
count = 31 + 28 + day;
break;
case 4:
count = 31 + 28 + 31 + day;
break;
case 5:
count = 31 + 28 + 31 + 30 + day;
break;
case 6:
count = 31 + 28 + 31 + 30 + 31 + day;
break;
case 7:
count = 31 + 28 + 31 + 30 + 31 + 30 + day;
break;
case 8:
count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + day;
break;
case 9:
count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + day;
break;
case 10:
count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;
break;
case 11:
count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;
break;
case 12:
count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;
break;
}
//大月
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
//当月份为大月时,判断输入的日期是否正确
if (day < 1 || day > 31) {
//调用函数
fun();
} else {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
//当为闰年,输入的月份大于3时
if (month >= 3) {
//count自增1
count++;
}
}
document.write(year + "年" + month + "月" + day + "日" + "," + "是" + year + "年的第" + count++ + "天");
}
}
//小月
if (month == 4 || month == 6 || month == 9 || month == 11) {
//当月份为小月时,判断输入的日期是否正确
if (day > 0 && day <= 30) {
//当为闰年时
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
//count自增1
count++;
}
document.write(year + "年" + month + "月" + day + "日" + "," + "是" + year + "年的第" + count + "天");
} else {
//调用函数
fun();
}
}
//2月
if (month == 2) {
//判断是否为闰年
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
//是闰年
if (day > 0 && day <= 29) {
document.write(year + "年" + month + "月" + day + "日" + "," + "是" + year + "年的第" + count + "天");
} else {
//调用函数
fun();
}
} else {
//不是闰年
if (day > 0 && day <= 28) {
document.write(year + "年" + month + "月" + day + "日" + "," + "是" + year + "年的第" + count + "天");
} else {
//调用函数
fun();
}
}
}
} else {
alert("月份输入错误!!");
}
} else {
alert("年份输入错误啦!!!");
}
</script>