前几天,有个同事问:知道现在距离公元元年1月1日的天数,如何计算日期?此前对闰年的概念也不是很清晰,在网上查了下闰年规则,整理出一个日期转换类,贴出来和大家分享,不足之处还请多多指教!
先说下闰年规则:1、四年一闰、百年不闰、四百年再闰;2、公元元年1月1日指的是公元1年1月1日,不是公元0年1月1日;3、公元1年1月1日的这天是星期一。
下面程序中的天数的意思:从公元1年1月1日起的第多少天。
20130416修改如下:
下面的朋友指出了在把距离公元1年1月1日的天数转化为年数和剩余天数时计算方法出了问题,确实是有问题,也没想明白到底是哪里出了问题。这里就修改采用简单的累加天数计算法方法来计算年数和剩余天数,缺点就是需要执行多次循环效率可能不够高。
为了和在网上的日期计算工具计算的结果一致,这里的天数修改为距离公元1年1月1日多少天,比如公元1年1月2日距离公元1年1月1日为1天。
这里把后续增加的农历转换一并发出来,相互学习使用。
先贴出头文件内容:
==============================================================
再贴出.cpp文件内容