利用函数调用判断日期是否合法
分析:首先判断年份是否合法,再判断月份是否合法,最后判断日期。需要注意的是判断日期的时候,每个月份的天数是不一样的,需要具体分析,特别是二月份,当年份是闰年的时候有29天,不是闰年有28天。
<span>请输入年份:</span>
<input type="text" id="year">
<span>请输入月份:</span>
<input type="text" id="month">
<span>请输入日期:</span>
<input type="text" id="data">
<button id="btn">判断</button>
<input type="text" id="res">
<script>
//用函数封装一个获取对象
function get(id){
return document.getElementById(id);
}
//调用函数获取对象
var oYear = get('year');
var oMonth = get('month');
var oData = get("data");
var oBtn = get('btn');
var oRes = get('res');
//用函数封装一个判断日期是否合法:
function judgeData(y,m,d){
//这里限制年份范围为1000-3000之间,且年份不能为小数
if(y >= 1000 && y <= 3000 && y % 1 == 0){
//判断月份
if(m >= 1 && m <= 12 && m % 1 == 0){
//判断日期 :注意具体分析2月份是否为闰年,令每个月最大的天数为maxDay
var maxDay ;
if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12){
maxDay = 31 ;
}
else if(m == 4 || m == 6 || m == 9 || m == 11){
maxDay = 30 ;
}
else if(m == 2){
//判断年份是否为闰年,从而判断二月天数
if(y % 4 == 0 && y % 100 != 0 || y % 400 == 0){
maxDay = 29 ;
}
else{
maxDay = 28 ;
}
}
//判断日期是否合法
if(d >= 1 && d <= maxDay && d % 1 == 0){
return true ;
}
}
}
return false ;
}
//绑定点击事件
oBtn.onclick = function(){
//拿到年份、月份、日期
var y = oYear.value ;
var m = oMonth.value ;
var d = oData.value ;
//调用函数判断日期是否合法:
var res = judgeData(y , m , d) ;
// oRes.value = res ;
if(res){
oRes.value = '日期合法' ;
}
else{
oRes.value = '日期不合法' ;
}
}
</script>