日期计算

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

 

地球绕太阳转一周的实际时间是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字段中的添加
}

 

转载于:https://www.cnblogs.com/BobSky/archive/2013/06/13/3134381.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值