日期计算

开始前先介绍一下《闰年》

 

地球绕太阳转一周的实际时间是365天5时48分46秒。如果一年只有365天,那么每年就多出5个小时。4年多出的23小时15分4秒,差不多就等于1天。于是决定每四年增加1天。但是,它比一天24小时又少了约45分钟,如果每100年有25个闰年的话,就少了18时43分20秒,这就差不多等于1天了,这显然不合适。
可以算出,每年多出5小时48分46秒,100年就多出581小时16分40秒。而25个闰年需要25*24=600小时。581小时16分40秒只够24个闰年(24*24=576小时),于是决定每100年只安排24个闰年(世纪年不作闰年)。但是这样每100年又多出了5小时16分40秒(581小时16分40秒-576小时),于是又决定每400年增加一个闰年。这样就比较接近实际情况了。
根据以上的,决定闰年按照以下的计算规则:闰年应能被4整除(如2004年是闰年,而2001年不是闰年),但不是所有被4整除的年份都是闰年。在能被100整除的年份中,又同时能被400整除的年份才是闰年(如2000年是闰年),能被100整除而不能被400整除的年份(如1800、1900、2100)不是闰年。这是国际公认的规则。只说“能被4整除的年份就是闰年”是不准确的

 

月份里边有31天的是[1,3,5,7,8,10,12]

月份里边有30天的是[4,6,9,11]

2月份为特殊月正常天数为28天遇到闰年是29天

 

产生以下算法

var day31 = [1,3,5,7,8,10,12];
var day30 = [4,6,9,11];
var dayNub = 0;

function inArray(array,mouth){
    for(var i in array){
        if(array[i] == mouth){
            return true;
        }
    }
    return false;
}
if(inArray(day31,月份)){
    dayNub = 31;
}else if(inArray(day30,月份)){
    dayNub = 30;
}else{
    if((年份%4 == 0 && 年份%100 != 0) || 年份%400 == 0){
        dayNub = 29;
    }else{
        dayNub = 28;
    }
}
for(var i=0;i<=dayNub;i++){
    进行select字段中的添加
}

 

posted @ 2013-06-13 17:47  抱.抱  阅读(245)  评论(0编辑  收藏  举报