从1970到指定年份有多少个闰年 快速算法

/*

 * Number of leap years from 1970 up to, butnot including, the specified year

 * (expressed as the number of years since1900).

 */

#define _ELAPSED_LEAP_YEARS(y)  (((y - 1)/4) - ((y- 1)/100) + ((y + 299)/400) \

                                - _LEAP_YEAR_ADJUST)

 

[1900,x) y=x-1900表示从[1900,x-1]一共有y年

((y -1)/4)表示这y年一共有多少能被4整除的数,除去第一个

((y -1)/100)表示这y年一共有多少能被100整除的数,除去第一个

((y +299)/400)表示一共有多少能被400整除的数

(y-101+400)/400

[1900,2000]共有101年

_LEAP_YEAR_ADJUST为从1900-1970,一共有17个闰年


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值