计算两日期之间的天数的新颖算法

本文介绍了一种新颖的算法来计算两个日期之间的天数差异,避免了传统方法中处理闰年的复杂性。通过计算每个日期距离公元元年的天数,然后相减,可以简化计算过程。算法举例说明并提供了相应的代码实现。
摘要由CSDN通过智能技术生成

昨天在微信里面看到一道题,赛题是华为【开发者英雄大会】寻找超级算法大师-DevCloud赛道出的,活动地址

赛题为:

赛题蛮中规中矩的,涉及不到高深的算法,就是计算两日期之间的日期差距。看了网上的一些代码大多都是先计算当年的剩余日子+末尾年开始的日子+中间年份的日子。虽然好理解,但是写出来还是蛮复杂的,要注意闰年的情况。

这里给出一种新的思路:先分别计算两个日期距离公元元年之间的日子,然后将得到的两个日子相减就能得到两日期之间相差的天数了。而计算与公元元年之间的差距是很好计算的,只需要一个数学公式就可以了。我们就是2016-12-22为例子说明一下。首先计算2016年1月1日之前的天数,先假设每年只有365天,那么一共有(2016 - 1)* 365天。然后在计算2016年之前一共有多少个闰年,一共有

(2016 - 1)/ 4 - (2016 - 1) / 100 +(2016 - 1) / 400 个闰年。每个闰年比平年多一天,那么2016年之前一共有

(2016 - 1)* 365 + (2016 - 1)/ 4 - (2016 - 1) / 100 +(2016 - 1) / 400 天。然后在计算2016年过了多少天,这个就比较简单了,之间看代码就好了。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值