谁有通过年份、月份得到该月天数的函数

nik_Amis 2005-05-10 04:26:34
RT
...全文
158 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nik_Amis 2005-05-10
  • 打赏
  • 举报
回复
谢了各位
xuzuning 2005-05-10
  • 打赏
  • 举报
回复
至于那么复杂吗?

<script>
for(i=1;i<=12;i++) {
d = new Date(2005,i,0);
document.write(i+" "+d.getDate()+"<br>");
}
</script>

out
1 31
2 28
3 31
4 30
5 31
6 30
7 31
8 31
9 30
10 31
11 30
12 31
梅雪香 2005-05-10
  • 打赏
  • 举报
回复
<script language="JavaScript">
<!--

function CheckDate(strDate){
var reg=/^(\d{4})([-])(\d{2})([-])(\d{2})/;
if(!reg.test(strDate)){
alert("日期格式不正确!\n正确格式为:2004-01-01");
return false;
}
var ss=strDate.split("-");
var year=ss[0];
var month=ss[1];
var date=ss[2];
if(!checkYear(year)){return false;}
if(!checkMonth(month)){return false;}
if(!checkDate(year,month,date)){return false;}
return true;
}
function checkYear(year){
if(isNaN(parseInt(year))){alert("年份输入有误,请重新输入!"); return false;}
else if(parseInt(year)<1950 || parseInt(year) >2050){ alert("年份应该在1950-2050之间!"); return false}
else return true;
}
function checkMonth(month){
if(isNaN(parseInt(month))){alert("月份输入有误,请重新输入!"); return false;}
else if(parseInt(month)<1 || parseInt(month) >12){ alert("月份应该在1-12之间!"); return false}
else return true;
}
function checkDate(year,month,date){
var daysOfMonth=CalDays(parseInt(year),parseInt(month));
if(isNaN(parseInt(date))){alert("日期输入有误,请重新输入!"); return false;}
else if(parseInt(date)<0||parseInt(date)>daysOfMonth){ alert("日期应该在1-"+daysOfMonth+"之间!"); return false;}
else return true;
}
function CalDays(year,month){
var days=0;
switch(month){
case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31;break;
case 4: case 6: case 9: case 11: days=30;break;
case 2: if(isLeapYear(year)) days=29;
else days=28;
break;
}
return days;
}
function isLeapYear(year){
if((year %4==0 && year %100!=0) || (year %400==0)) return true;
else return false;
}
alert(CheckDate("2005-02-29"));
//-->
</script>


整个就是一个YYYY-MM-DD格式的日期较验函数
CalDays()是得到天数的
baiyunfei 2005-05-10
  • 打赏
  • 举报
回复
function getLeap(iYear,iMonth)
{
var DayNumber=new Array(11) //Array to save every month days
DayNumber[0]=DayNumber[2]=DayNumber[4]=DayNumber[6]=DayNumber[7]=DayNumber[9]=DayNumber[11]=31;
DayNumber[3]=DayNumber[5]=DayNumber[8]=DayNumber[10]=30;
if (iYear%4==0&&((iYear%100!=0)||(iYear%400==0)))
DayNumber[1] = 29;
else
DayNumber[1] = 28;

return DayNumber[iMonth-1];
}

调用返回2005年2月份的天数:getLeap(2005,2)

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧