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)

解决方案 »

  1.   

    <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()是得到天数的
      

  2.   

    至于那么复杂吗?<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