通常,我们家用的日历是以公历(阳历)为基础,除了日期和星期外还罗列了许多其他信息如农历的日子,节气,节假日,等等。如果略去其它信息只看日期和星期,我们的日历还是很有规律的。(注:这里,我们所说的“日期”指的是某月某日,“星期”指的是一个星期中的某天,即星期一,星期二,等等。)
首先,在日历中每年的天数是固定的,即平年365天,闰年366天。一年中每月的天数也是固定的,即大月31天小月30天,二月平年28天闰年29天。所以,每年1月1日的星期就决定了全年其他日子的星期。于是,两个年分的日历只要它们1月1日的星期相同又同为平年或同为闰年,它们就是相同的或重复的日历。
其次,平年365天即52周多1天,闰年366天即52周又2天。于是,如果某个平年的1月1日是星期一那么下一年的1月1日一定是星期二(即加1天);而如果某个闰年的1月1日是星期一那么下一年的1月1日一定是星期三(即加2天),如此类推。
平年的1月1日可以是也只能是星期一到星期天中的某一天,闰年的1月1日也可以是和只能是星期一到星期天中的一天。这样,我们一共有,也只有14本不同的日历,7本平年日历和7本闰年日历,这些日历的1月1日分别为星期一至星期天。 我们的日历如果略去其它信息只看日期与星期,不论哪一年必然是这14本中的1本。这就是我们所说的日历的重复性。
为了下面的讨论我们不妨把平年的日历按其1月1日的星期记为P1至P7,P1表示平年的1月1日是星期一,P7表示平年的1月1日是星期天,以此类推。同样,我们把闰年的日历按其1月1日的星期记为R1至R7,R1表示闰年的1月1日是星期一,R7表示闰年的1月1日是星期天,等等。
我们知道,闰年的法则是年份数能被4整除为闰年,但世纪年即年份数以00结尾的要被400整除才是闰年。
根据以上所说我们很容易把2001年至2400年这400年的日历列表如下:
2001-2420日历列表
如表所示,2001年1月1日是星期一,该年的日历是P1。2002年的1月1日必然是星期二(加1),所以它的日历是P2。2004年是闰年,它的1月1日是星期四,它的日历是R4。而下一年2005年的1月1日必然是星期六(加2),它的日历是P6。
表中三个黄格是2100年,2200年和2300年,它们是非闰年的世纪年。绿格是2400年,是闰年。
从表中我们可以清晰地看到日历的排列顺序呈现一个28年的周期,如2001年和2029年日历相同都是P1,2002年和2030年日历相同都是P2,等等。这不难理解,因为14(本日历)和4(年一闰)的最小公倍数是28。也可以理解为7本闰年日历每本都用到一次才能完成一个周期,这需要28年。只是这个28年的轮回周期(规律)止于非闰世纪年(黄格),因为它打断了4年一闰的规律。相信读者一定会想到由于2400年是闰年这个28年的轮回周期一定会适用于从2301至2499年。
注意到2001年和2401年的日历都是P1,所以日历的真正的无条件的轮回周期是400年。这也不难理解,因为400年涵盖了所有闰年可能出现的情况。
所以我们说,日历的轮回周期为400年。在每个世纪内又有28年的小轮回周期,此小周期止于非闰年的世纪年。
上面这个表格的一个很好的用处就是可以用来快捷地推出任何某年某月某日的星期。比如,几天前我们刚刚过了一个非常非常罕见的日子:2022年2月22日,正好是星期二,又是农历正月二十二!我们来看一下这个日子到底有多罕见。
首先,2月22日是星期二本身并不罕见。从表中可见2022年的日历是P6。因此所有日历是P6的年份2月22日都是星期二,同时日历是R6的年份2月22日也是星期二(2月29日以后才会与P6不同)。上表中从2001年至2400年400年中有43个P6,13个R6,即共有56个年份2月22日是星期二。
但是,2x22年2月22日是星期二就不同了。从表中可见2122年的日历是P4,2122年2月22日应该是星期日(比P6后退两天)。同理,2222年的日历是P2,2222年2月22日应该是星期五(比P4后退两天)。2322年的日历是P7,2322年2月22日应该是星期三(比P6前推一天)。一直要到2422年日历才回到P6(400年轮回),此时2422年2月22日才又是星期二!即2x22年2月22日是星期二要400年才出现一次。可是2422年2月22日虽然是星期二却并不是农历正月二十二。所以,真正罕见的在于2x22年2月22日是星期二,又是农历正月二十二!
与阳历不同,农历的轮回规律不明显。所以要准确推断出下一个xx22年2月22日既是星期二又是正月二十二是哪年不是易事。
我们知道,农历的周期是19年7闰,大约是6939天16小时31分45秒,而阳历的19年是6939天14小时26分34秒。所以,每隔19年相同农历与阳历日子的组合(如农历正月二十二和阳历2月22日)就有机会重复出现一次。注意,这里我们说“有机会”不是“一定会”,因为每19年农历比阳历长了2小时5分21秒。为了保持与阳历的一致每隔若干个19年农历会将某个大月改成小月。除此之外,农历大小月的划分也很复杂。比如农历12月(腊月)通常是大月30天,但有些年腊月是小月只有29天。这样,19年后农历阳历日子的组合有时会重复,有时会差一天。
笔者查看了包括2022年在内的11个相隔19年的2月22日的农历日子(从1908年到2098年),有7个是正月二十一,只有4个是正月二十二,不到40%。见下表。
农历阳历日子组合的重复
由于这个表还不够长还看不出周期规律,我们姑且认为正月二十二和正月二十一各有一半的机会。
综合起来,下一个有可能出现xx22年2月22日是星期二又是正月二十二的年份是400x19 = 7600年后即9622年,或者是16222(9622+7600)年。是不是如此,只能让我们的万年后子孙来评判了。所以,我们刚刚经过的这个日子,2022年2月22日是星期二又是农历正月二十二,说是万年不遇一点不为过。