<script>
function getTime() {
var year = parseInt(prompt("请输入年份"));
//校验用户是否输入了,如果没有输入,year为null,转数字为0,转布尔值为false。取反为true。
if (!year) {
//弹出提示
alert("请输入年份")
//结束函数
return;
}
var leap = isRun(year);
var month = parseInt(prompt("请输入月份"));
//判断输入的月份是否正确
if (!month) {
alert("请输入月份")
return;
}else if (month>12) {
alert("月份不能大于12");
return;
}
var day = parseInt(prompt("请输入几号"));
if (!day) {
alert("请输入几号")
return;
}else if ((month == 1||month == 3 ||month == 5||month == 7||month == 8||month == 10||month == 12)&&day>31) {
alert("本月天数不能大于31天")
return;
}else if(month == 2){
if (leap&&day>29) {
alert("本月天数不能大于29天")
return;
}else if (day>28) {
alert("本月天数不能大于28天")
return;
}
}else if((month == 4 || month == 6 ||month == 9||month == 11)&& day>30){
alert("本月天数不能大于30天")
return;
}
//判断输入的天数是否正确
if (month==1) {
return day;
}else{
//记录总共是当年的第几天
var sum = 0;
//计算当前月前面几个月的天数
for(var i = 1;i<month;i++){
// 1 3 5 7 8 10 12 31天
// 2 28天 剩下的都是30天
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
sum += 31;
break;
case 2:
if (leap) {
sum += 29;
}else{
sum += 28;
}
break;
default:
sum += 30;
break;
}
}
//添加上本月的第几号。
sum += day;
return sum;
}
}
var sum = getTime();
if (sum) {
document.write(`这一天是当年的第${sum}天`)
}
//判断一个年份是不是闰年
//传入年份 year 返回值为布尔值,true为闰年,fasle不是闰年
function isRun(year){
if ((year % 4 ==0 && year % 100 !=0)||year % 400 == 0) {
return true
}else{
return false;
}
}
</script>