博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
闰年的计算问题
阅读量:2490 次
发布时间:2019-05-11

本文共 754 字,大约阅读时间需要 2 分钟。

闰年那些事儿

 
闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际的时间差而设立的。补上时间差的年份为闰年,这一年的2月有29天,其他年份都是平年,2月则只有28天。
判断规则:公元年数可被4整除为闰年,但是整百的年数必须被400整除方为闰年,用程序说话就是:
bool  Is LeapYear(int year)
{
   return ((year%4==0&&year%100!=0)||(year%400==0));
}
 
理解是记忆的基础,否则记了还是会忘掉,下面就说说为什么会有这样的判断规则呢?
地球的公转周期是365.2422个太阳日,按这个天数,地球围绕太阳公转一周后,并不是整整365个昼夜。因此,如果按照每年365天算,则每到四年,地球就和四年前的位置差了近一天。这一天的公转距离需要闰一日来补足,因此一般每四年就会出现一个闰年。 0.2422 * 4 = 0.9688 < 1,因此每闰一次都会有点矫枉过正,造成了0.0312天的误差。每100个闰年(即400年)会造成3.12天的误差,为了减掉这个误差,人们又规定,在第25个、第50个、第75个“闰年”处不闰(减掉多余的3天),而在第100个闰年处保持闰年。
 
所以,才有了这样的计算规则:
Step1:如果年数可以整除400,则必定是闰年。
Step2:如果年数不能整除100可以整除4 (刨除第25/50/75个闰年),则是闰年。
 
按照这个规则,1900年不是闰年,而2000年是闰年,2100年则不是闰年。
然而,这个定义还是没有彻底的解决问题,因为还有0.0012天的误差没有完美地解决,到第3333.33年还会出问题,这个问题对于目前的我们来说,太过于久远,那么,就把它交给那个时代的人去解决吧!
 

 

转载地址:http://cdlrb.baihongyu.com/

你可能感兴趣的文章
CentOS7 中把yum源更换成163源
查看>>
关于yum Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.
查看>>
linux下载github中的文件
查看>>
HDP Sandbox里面git clone不了数据(HTTP request failed)【目前还没解决,所以hive的练习先暂时搁置了】
查看>>
动态分区最佳实践(一定要注意实践场景)
查看>>
HIVE—索引、分区和分桶的区别
查看>>
Hive进阶总结(听课总结)
查看>>
大数据领域两大最主流集群管理工具Ambari和Cloudera Manger
查看>>
Sqoop往Hive导入数据实战
查看>>
Mysql到HBase的迁移
查看>>
Sqoop import进阶
查看>>
Hive语句是如何转化成MapReduce任务的
查看>>
Hive创建table报错:Permission denied: user=lenovo, access=WRITE, inode="":suh:supergroup:rwxr-xr-x
查看>>
Hive执行job时return code 2排查
查看>>
hive常用函数及数据结构介绍
查看>>
Hive面试题干货(亲自跟着做了好几遍,会了的话对面试大有好处)
查看>>
力扣题解-230. 二叉搜索树中第K小的元素(递归方法,中序遍历解决)
查看>>
力扣题解-123. 买卖股票的最佳时机 III(动态规划)
查看>>
Django 源码阅读:服务启动(wsgi)
查看>>
Django 源码阅读:url解析
查看>>