初学JS之if和switch嵌套解决判断平闰年问题
平闰年问题
用户输入年份,月份以及天数,点击按钮,判断日期是否合法
方法之一
这是我自己最开始的方法比较繁琐,且代码冗余;
根据从年到月再到日的判断顺序,用三个if连续嵌套:
html部分代码:
<body>
<input type="text" id="year">年
<input type="text" id="month">月
<input type="text" id="day">日
<button id="btn">判断</button>
<input type="text" id="result">
</body>
javascript部分代码:
var yearInp = document.getElementById("year");
var monthInp = document.getElementById("month");
var dayInp = document.getElementById("day");
var btnInp = document.getElementById("btn");
var resultInp = document.getElementById("result");
console.log(yearInp,monthInp,dayInp,btnInp,resultInp);
btn.onclick = function(){
//alert(111);
var y = yearInp.value *1; //年
var m = monthInp.value *1; //月
var d = dayInp.value *1; //日
console.log(y , m , d );
if((y >0 && y % 1 ==0)&&(m>0 && m <13 && m % 1 == 0)&&(d>0 && d %1 ==0)){
var result ;
if((y % 100 == 0 && y % 400 == 0)||(y % 100 != 0 && y % 4 == 0 )){
//为闰年
if(m == 1||m == 3||m == 5||m == 7||m == 8||m == 10||m == 12){
if(d >= 1 && d <= 31){
result = "是一个合法的日期";
}else{
result = "不是一个合法的日期";
}
}else if(m == 4||m == 6||m == 9||m == 11){
if(d >= 1 && d <= 30){
result = "是一个合法的日期";
}else{
result = "不是一个合法的日期";
}
}else{
if(d >= 1 && d <= 29){
result = "是一个合法的日期";
}else