求剧情
算法的乐趣 · 第二十八节

《算法的乐趣》第二十八节

计算星期几的关键是求出两个日期相隔的天数,常用三种方法。

计算星期几的关键是求出两个日期相隔的天数,常用三种方法。

一是直接按公历规则计算:把间隔天数分成前一年剩余天数、中间整年天数、后一年已过天数三部分求和。以1977年3月27日到2005年5月31日为例,三部分合计10292天,除以7余2,已知前者是星期日,故后者是星期二。

二是用儒略日计算。儒略日是一种从公元前4713年1月1日正午起算的流水日历,可统一不同历法的年表,且是精确到秒的浮点数。算出两个日期的儒略日相减即得天数,也可直接对儒略日取余7推算星期。上例两日期的儒略日差同样是10292。

三是蔡勒公式,可直接由日期算出星期数。推导时以公元前1年12月31日(星期日)为基准,先得出含闰年次数的公式,德国数学家蔡勒1886年进一步简化成著名公式,余数即星期几,0代表星期日。公式需注意月份调整(1、2月按上一年13、14月算)及结果为负时加7修正,且只适用于1582年10月15日之后的格里历,之前的日期另有儒略历版本。

此外,本节还介绍了生成日历的算法:用查表法确定每月天数,首日星期数由蔡勒公式算出,之后每天递增推算,即可打印月历和年历。最后提到历法变更的历史:格里历1582年由教皇颁布,但德国、荷兰1698年、英国1752年、俄国1918年才先后采用,研究这一时期的欧洲史料需留意各国历法差异。

‹ 上一章目录下一章 ›

全部 76 章