两个日期之间闰年数计算方法探索
来源:互联网 发布:php debug 编辑:程序博客网 时间:2024/04/27 15:30
由于一个项目的需要,需要计算两个日期之间的天数,计算天数就涉及到闰年的问题,如何计算两个日期之间的闰年数成为了问题的关键。
虽然使用循环可以很容易的计算出来,如下:
这个算法的时间复杂度是(nYearE-nYearS),显然不适宜年份相差很大的计算。
在网上找了好久,也看到一些算法,但是不能够对应所有的情况,有些算法在年份比较大时,差值就不对了。
今天偶然发现了一个规律,如下:一般情况下,两个日期之间的差值除以4取整,减去重叠的部分,就是它们之间的闰年数,但是,当结束日期的余数减去开始日期的余数需要借位时,闰年数需要加1,开始日期的余数为0的情况,当做4来看。
经过测试,该算法基本正确,算法如下:
完整的算法和测试用例如下:
- 两个日期之间闰年数计算方法探索
- 计算两个日期之间的周数
- Java两个日期之间相差秒数
- 闰年计算方法
- Sql确定两个日期之间的秒、分、小时数
- 计算两个日期之间相差的月数
- [日期时间]函数(-),计算两个时间之间的秒数
- 计算两个日期之间相差的月数 (网络摘取)
- 计算两个日期之间相差的月数
- 求相邻两个日期之间的净增长数
- Java 计算两个日期之间相差的月数
- c++ 获取两个标准日期之间相差的秒数
- Calendar计算两个日期之间的天数和周数
- 获取两个日期之间相差的周数
- c# 计算两个日期之间相差的小时数
- sql 计算两个日期之间的条数
- 求两个年份之间闰年的数目
- 计算[1900, year]之间的闰年数
- 2年前Java开发的一些小东东
- AIDL底层实现的猜想
- C++ 多线程系统编程精要
- 2011 2-12
- C#获取特殊文件夹
- 两个日期之间闰年数计算方法探索
- XP关机重启问题
- UBI制作人:传统开发商不必恐惧社交游戏
- 2011年1月-4月项目日记_2.12
- Android Button使用,ArrayList使用练习
- crontab命令详解
- hdoj 1176 免费馅饼
- C++各大有名库的介绍
- ubuntu10.04 装机攻略 (Linux装机必备佳品)