什么是闰年

公历闰年判定遵循的规律为:四年一闰、百年不闰、400年再闰。

中国旧历农历每月的天数依照月亏而定,一年的时间以12个月为基准,平年比一回归年少约11天。为了合上地球围绕太阳运行周期即回归年,每隔2到4年,增加一个月,增加的这个月为闰月。那么闰年应该怎么计算?

闰年的计算方法:
1、普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年)

2、世纪年能被400整除的是闰年。(如2000年是闰年)

3、对于数值很大的年份,这年如果能整除3200,并且能整除172800则是闰年。如172800年是闰年,86400年不是闰年(因为虽然能整除3200,但不能整除172800)(此按一回归年365天5h48’45.5’'计算)。

那么用算法来实现就是:

         public static bool IsLeap(int yN){if ((yN % 400 == 0 && yN % 3200 != || (yN % 4 == 0 && yN % 100 != || (yN % 3200 == 0 && yN % 172800 == 0))return true;elsereturn false;}
细恐至微,居然有这样一个bug

1880年到2020年中是闰年的有以下这些年份:

1880年、1884年、1888年、1892年、1896年、1904年、1908年、1912年、1916年、1920年、1924年、1928年、1932年、1936年、1940年、1944年、1948年、1952年、1956年、1960年、1964年、1968年、1972年、1976年、1980年、1984年、1988年、1992年、1996年、2000年、2004年、2008年、2012年、2016年、2020年。

于是我打开我的iphone手机看了一下1990年的日历

1990在并不是闰年,2月份居然有29天


1900年有2月29日!看完后我整个感觉都不好了,开始怀疑人生。那一天的人们在干嘛?

据说有人看到这里,赶快看看自己的android手机(ps:确实没毛病)

抽了根烟,情不自禁的我打开了熟悉的windows电脑,心里默念了一句"微软大法好’。

熟悉的微软终于没有让我失望

常见的认知错误

  • 一年总是365天
  • 2月总是28天
  • 闰年时每四年一次

这些bug与闰年有关:
1、在一个日期值上加或减时间的代码。尤其是加减1年或1个月的代码

2、各种根据数据库查询结果生成的报表和图标,月度和年度统计可能会少算1天

3、证书/密码/密钥/缓存 等的过期时间,可能会比预期的早了一天,或者可能设定了一个非法的过期时间

4、固定长度的数组。例如,一个长度为365的数组遇到闰年可能就不够了,可能会数组越界。

5、UI组件,例如日历、日期选择组件,以及客户端输入校验相关的代码。

闰秒?
除了闰年,还有一个东西叫闰秒。
“闰秒”就是1分钟有61秒, “跳秒”都安排在6月30日,或是12月31日的最后一瞬间。

详情参考:
https://en.wikipedia.org/wiki/Leap_second

参考资料

https://discussions.apple.com/thread/5982489?tstart=0

https://docs.microsoft.com/en-us/office/troubleshoot/excel/wrongly-assumes-1900-is-leap-year

https://blog.csdn.net/weixin_39860915/article/details/103917840

https://en.wikipedia.org/wiki/Leap_second

作者信息
【文章信息】:作者-张林:原文链接-https://blog.csdn.net/kebi007/article/details/103959512
【原创公众号】:dotNet全栈开发。文章目录
版权声明:本文为CSDN博主「dotNet全栈开发」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

细恐至微,那些与闰年有关的bug相关推荐

  1. 那些和闰年相关的 Bug

    2020年是一个闰年(Leap Year),闰年是会出故障的. 常见的错误认知 1. 一年总是365天 2.2月总是28天 3.闰年是每四年一次 其实,闰年并不是每四年一次.2000是闰年,但1900 ...

  2. 国产自主研发编程语言火了,同行十二年,不知Python是木兰?

    1月17号有媒体称,一款面向智能物联网和编程教育的号称自主研发语言横空出世,名为[Mulan ].消息一出,引起了众多争议.但有知乎网友发现,下载的程序包解包后--是个 Python? 何为木兰? 1 ...

  3. 2019(dotNet全栈开发)公众号回顾

    2019年已经过去,人口红利已经逐渐消失,也许这是这10年互联网史上最糟糕的一年,也可能这是未来10年互联网史上最好的一年 关于公众号,我其实很早就开始注册了,只是一直没怎么运营(ps:不知道怎么推广 ...

  4. 2019我的公众号回顾

    2019年已经过去,人口红利已经逐渐消失,也许这是这10年互联网史上最糟糕的一年,也可能这是未来10年互联网史上最好的一年 关于公众号,我其实很早就开始注册了,只是一直没怎么运营(ps:不知道怎么推广 ...

  5. 公司终于决定放弃微服务传统设计模式,全面拥抱 DDD!

    前段时间,参加了一场闭门技术交流会,讨论的热点是微服务,话题集中在微服务架构拆分到底应该拆多细. 有微服务的地方就有 DDD(领域驱动设计),不过即便是专业的技术交流会,也没人能给 DDD 的价值下个 ...

  6. springcloud 微服务鉴权_我对微服务、SpringCloud、k8s、Istio的一些杂想

    一.微服务与SOA "微服务"是一个名词,没有这个名词之前也有"微服务",一个朗朗上口的名词能让大家产生一个认知共识,这对推动一个事务的发展挺重要的,不然你叫微 ...

  7. 再见了微服务!全面拥抱 DDD 思想真正的价值!

    前段时间,参加了一场闭门技术交流会,讨论的热点是微服务,话题集中在微服务架构拆分到底应该拆多细. 有微服务的地方就有 DDD(领域驱动设计),不过即便是专业的技术交流会,也没人能给 DDD 的价值下个 ...

  8. 再见了微服务,DDD已成气候!

    前段时间,参加了一场闭门技术交流会,讨论的热点是微服务,话题集中在微服务架构拆分到底应该拆多细. 有微服务的地方就有 DDD(领域驱动设计),不过即便是专业的技术交流会,也没人能给 DDD 的价值下个 ...

  9. 再见了微服务!全面拥抱 DDD 真正的价值

    前段时间,参加了一场闭门技术交流会,讨论的热点是微服务,话题集中在微服务架构拆分到底应该拆多细. 有微服务的地方就有 DDD(领域驱动设计),不过即便是专业的技术交流会,也没人能给 DDD 的价值下个 ...

  10. 再见了微服务!DDD 已成气候!

    前段时间,参加了一场闭门技术交流会,讨论的热点是微服务,话题集中在微服务架构拆分到底应该拆多细. 有微服务的地方就有 DDD(领域驱动设计),不过即便是专业的技术交流会,也没人能给 DDD 的价值下个 ...

最新文章

  1. 为分支机构和移动人员实施路由的导图
  2. 以python入门教程新世界-50⾏python爬⾍代码, 带你正确打开知乎新世界!
  3. rand(),repmat(),logical()函数的使用
  4. 2020年, SGG论文汇总
  5. jenkins通过Execute shell中通过scp/ssh命令,将一台机器中项目远程拷贝到另外一台机器,修改文件中内容
  6. 比特币市值目前是白银68%
  7. HDU - 4422 The Little Girl who Picks Mushrooms
  8. 重置PL/SQL Developer工具栏布局
  9. 【百战GAN】适合所有人的第一个GAN项目:DCGAN图像生成代码实战
  10. 随机运算HTML5代码,js随机数学加法计算答题代码
  11. 微信公众号迁移,认证; 名称触发商标怎么办
  12. 九宫格一条线连起来_9个圆圈用4条线连起来-九个点用四条线连接-数学-霍甲心同学...
  13. LPR历史数据汇总(持续更新)
  14. 终于有人把3D打印讲明白了
  15. 用条码标签打印软件批量打印物料标签
  16. css3宽度变大动画_H5 直播的疯狂点赞动画是如何实现的?
  17. B站投资心动,内容渠道两手都要抓,两手都能“硬”吗?
  18. 小白入门网络安全,需要学习哪些内容?
  19. SRPG游戏开发(五十二)第十一章 地图动作与地图事件 - 一 初始化地图动作(Initialize Map Action)
  20. 2022年化工自动化控制仪表考试题及在线模拟考试

热门文章

  1. 微软Windows平板发展史:在希望和失望中徘回
  2. C# Revit二次开发基础/核心编程---课程体系介绍
  3. linux下检测网线拔出
  4. 奥运门票第一阶段抽签结果
  5. Torch7下搭建卷积神经网络框架
  6. 宝德服务器主板型号在哪看,配Xeon E5620 宝德PR2760T服务器初解析
  7. 2006百度之星程序设计竞赛初赛(转)
  8. 多线程爬虫——图片爬取
  9. IDEA下,工程突然找不到或引用不到jar包。。
  10. VUE ECharts人际关系图