1.闰年由来:
闰年是根据太阳直射点的回归周期得来的,太阳直射点的回归周期是365天5时48分46,称为回归年,折为365.2422天。为了方便就把365作为一年,这就是“平年”。回归年比平年多出5时48分46,累计4年约等于一天,所以每4年就要闰一天,这一天放在2月,成为29天,那一年就有365天,称为“闰年”。这就是我们常说的公历。
但是精确计算一下,4年中累计的时间经过4年闰一天后,多了44分56秒,四百年后会使历年比回归年的时间多三天,因此在回归年中应少闰三次。所以规定公元年数能被4整除的是闰年;而对于每个世纪的第一年,虽能被4整除,但不能被400整除的仍不做闰年。这样在400年中原来闰100次,减少了3次,就有97次闰年。
2.时间算法:
时间是有周期规律的,4年一个周期(平年、平年、平年、闰年)共计1461天。Windows上C库函数time(NULL)返回的是从1970年1月1日以来的毫秒数,我们最后算出来的年数一定要加上这个基数1970。总的天数除以1461就可以知道经历了多少个周期;总的天数对1461取余数就可以知道剩余的不足一个周期的天数,对这个余数进行判断也就可以得到月份和日了。