年月日是当前的第多少天
第一种方法:
<input type="text" id="inp1" placeholder="年份">
<input type="text" id="inp2" placeholder="月份">
<input type="text" id="inp3" placeholder="日期">
<button id="btn">计算</button>
<input type="text" id="inp4">
<script>
/*
题目;判断是第几天
思路:1、绑定点击事件
2、获取年月日
3、判断
*/
btn.onclick = function () {
// alert('哈哈'); 测试是否绑定成功
// 获取输入框inp1里面的年份
var year = inp1.value*1;
// 获取输入框inp2里面的月份
var month = inp2.value*1;
// 获取输入框inp3里面的日期
var day = inp3.value*1;
// 判断是几月
var res; //只声明一次,下面依次赋值 代码优化
// 为什么这里写的是==,而不是===.因为输入框里面的值是字符串类型
if (month == 1) {
res = day;
} else if (month == 2) {
// 一月份31天,加上二月份的天数
res = 31 + day;
} else if (month == 3) {
// 注意注意!!!
三月份:一月份+二月份+三月份天数,需要注意的是我们要判断二月份是否是闰月
if (year % 4 == 0 && year % 100 !== 0 || year % 400 == 0) {
res = 31+29+day;
}else {
res = 31+28+day;
}
}else if (month == 4) {
if (year % 4 == 0 && year % 100 !== 0 || year % 400 == 0) {
res = 31+29+31+day;
}else {
res = 31+28+31+day;
}
}else if (month == 5) {
if (year % 4 == 0 && year % 100 !== 0 || year % 400 == 0) {
res = 31+29+31+30+day;
}else {
res = 31+29+31+30+day;
}
}else if (month == 6) {
if (year % 4 == 0 && year % 100 !== 0 || year % 400 == 0) {
res = 31+29+31+30+31+day;
}else {
res = 31+28+31+30+31+day;
}
}
else if (month == 7) {
if (year % 4 == 0 && year % 100 !== 0 || year % 400 == 0) {
res = 31+29+31+30+31+30+day;
}else {
res = 31+28+31+30+31+30+day;
}
} else if (month == 8) {
if (year % 4 == 0 && year % 100 !== 0 || year % 400 == 0) {
res = 31+29+31+30+31+30+31+day;
}else {
res = 31+28+31+30+31+30+31+day;
}
}else if (month == 9) {
if (year % 4 == 0 && year % 100 !== 0 || year % 400 == 0) {
res = 31+29+31+30+31+30+31+31+day;
}else {
res = 31+28+31+30+31+30+31+31+day;
}
}else if (month == 10) {
if (year % 4 == 0 && year % 100 !== 0 || year % 400 == 0) {
res = 31+29+31+30+31+30+31+31+30+day;
}else {
res = 31+28+31+30+31+30+31+31+30+day;
}
}else if (month == 11) {
if (year % 4 == 0 && year % 100 !== 0 || year % 400 == 0) {
res = 31+29+31+30+31+30+31+31+30+31+day;
}else {
res = 31+28+31+30+31+30+31+31+30+31+day;
}
}else if (month == 12) {
if (year % 4 == 0 && year % 100 !== 0 || year % 400 == 0) {
res = 31+29+31+30+31+30+31+31+30+31+30+day;
}else {
res = 31+28+31+30+31+30+31+31+30+31+30+day;
}
}
inp4.value=res;
}
</script>
第二种方法:
<input type="text" id="inp1" placeholder="输入年份">
<input type="text" id="inp2" placeholder="输入月份">
<input type="text" id="inp3" placeholder="输入日期">
<button id="btn">计算</button>
<input type="text" id="inp4">
<script>
//1、为按钮注册点击事件
btn.onclick = function () {
// 2、分别获取ipn1、inp2、inp3的值
// 易错点:输入框里面都是字符串
var year = inp1.value*1;
var month = inp2.value*1;
var day = inp3.value*1;
// 3、if else if else if语句判断月份
// 为什么是== 而不是=== 因为输入框的值是字符串类型
// 注意思路:这里我们可以把闰年的计算赋值给一个变量
// 判断闰年 赋值给变量
var plus;
if (year % 4 == 0 && year % 100 !== 0 || year % 400 == 0) {
plus = 29;
} else {
plus = 28;
}
var res;
switch (month) {
case 1:
res = day;
break;
case 2:
res = 31 + day;
break;
case 3:
res = 31 + plus + day;
break;
case 4:
res = 31 + plus + 31 + day;
break;
case 5:
res = 31 + plus + 31 + 30 + day;
break;
case 6:
res = 31 + plus + 31 + 30 + 31 + day;
break;
case 7:
res = 31 + plus + 31 + 30 + 31 + 30 + day;
break;
case 8:
res = 31 + plus + 31 + 30 + 31 + 30 + 31 + day;
break;
case 9:
res = 31 + plus + 31 + 30 + 31 + 30 + 31 + 31 + day;
break;
case 10:
res = 31 + plus + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;
break;
case 11:
res = 31 + plus + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;
break;
case 12:
res = 31 + plus + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;
break;
}
inp4.value = res;
}
</script>
第三种方法:推荐
<input type="text" id="inp1" placeholder="请输入年份">
<input type="text" id="inp2" placeholder="请输入月份">
<input type="text" id="inp3" placeholder="请输入日期">
<button id="btn">计算</button>
<input type="text" id="inp4">
<script>
// 1、为按钮绑定点击事件
btn.onclick = function () {
//2、 获取inp1、inp2、inp3输入框的值
// 注意:输入框的值是字符串类型!!!数据类型需要转为数字类型
var year = inp1.value * 1;
var month = inp2.value * 1;
var day = inp3.value * 1;
// 3、
// 3.1使用switch语句判断是几月,倒序
var res=0; // var res=0转为字符串
switch (month) {
case 12:
res += 30;
case 11:
res += 31;
case 10:
res += 30;
case 9:
res += 31;
case 8:
res += 31;
case 7:
res += 30;
case 6:
res += 31;
case 5:
res += 30;
case 4:
res += 31;
case 3:
if (year % 4 == 0 && year % 100 !== 0 || year % 400 == 0) {
res += 29;
} else {
res += 28;
}
case 2:
res += 31;
case 1:
res += day;
}
inp4.value= res;
}
</script>