以现行中国农历编算规则,2033年(癸丑年)的农月闰月应出现在十一月,但网上流传的许多万年历却错误地将闰月置于七月或来年(甲寅年)正月,这被称为农历中的「2033年问题」。但这所谓的「问题」其实并不是真正的问题,置闰错误的原因仅仅只是对农历的编算规则有误解而已。与此相比,日本旧历中的「2033年问题」却是个真真正正的「问题」。如果严格按照日本旧历(天保历)的规则,2033年的置闰将变得无解。虽然都被称作「2033年问题」,中国农历与日本旧历中的「问题」有本质区别,不可混为一谈。这倒有点像「悖论」(paradox),有一些悖论是真正意义上存在逻辑矛盾的悖论,还有些只是源于误解罢了。[1]
在谈日本旧历的2033年问题之前,我们先简单回顾一下按中国农历规则该如何为2033年置闰。依据2017年颁布的国家标准《农历的编算和颁行》,农历的置闰规则为:
如果从某个农历十一月开始到下一个农历十一月(不含)之间有13个农历月,则取其中最先出现的一个不包含中气的农历月为农历闰月。
这一规则其实非常清晰。农历十一月即冬至所在的月份,壬子年冬至为2032年12月21日、冬月初一为12月3日,次年癸丑年冬至为2033年12月21日、冬月初一为11月22日。在这两年冬月初一之间仅有12个农历月,即便其间出现了一个无中气月(即被错置的「闰七月」),仍无需置闰(非闰月的无中气月也被称为「假闰月」)。而此后甲寅年冬至为2034年12月22日、冬月初一为12月11日,癸丑年与甲寅年的两个冬月初一间相隔了13个农历月,故需根据「无中气置闰」的原则设置闰月。这13个农历月中包含两个无中气月,但依规则首个无中气月才是闰月,故置闰十一月。[2]
中国农历的这一置闰原则是完全自洽的。虽然2033年至2034年间出现了罕见的三个无中气月,使得情况变得有些复杂,但仅需参照置闰规则仔细分析,不难得到正确的答案。然而源于中国农历的日本旧历可就没这么幸运了。天保历是日本在明治时代改用西历前的最后一部阴阳历,其与清朝时宪历一脉相承,唯一的区别仅在于置闰规则上的细微差别。也正是这一差别导致天保历将在2033年出现不可解决的矛盾。天保历的置闰规则称为「平山规则」[3]:
冬至所在的月份为十一月,春分所在的月份为二月,夏至所在的月份为五月,秋分所在的月份为八月。
而在「无中气置闰」这一点上天保历与时宪历是完全一致的。其实中国农历在绝大多数年份都满足平山规则,而此前两者在置闰上出现差异还是日本改西历之前的1851年(咸丰元年)至1852年(咸丰二年)。当时的情况为:
朔日 | 中国中气 | 日本中气 | 中国农历 | 日本旧历 |
---|---|---|---|---|
1851年8月27日 | 秋分(9月23日) | 秋分(9月24日) | 八月 | 八月 |
1851年9月25日 | 无 | 霜降(10月24日) | 闰八月 | 九月 |
1851年10月24日/25日[4] | 霜降(10月24日) | 无 | 九月 | 十月 |
1851年11月23日 | 小雪(11月23日) | 小雪(11月23日) 冬至(12月22日) | 十月 | 十一月 |
1851年12月22日/23日[5] | 冬至(12月22日) | 无 | 十一月 | 十二月 |
1852年1月21日 | 大寒(1月21日) 雨水(2月19日) | 大寒(1月21日) 雨水(2月19日) | 十二月 | 正月 |
1852年2月20日 | 春分(3月20日) | 春分(3月20日) | 正月 | 二月 |
1852年3月21日 | 无 | 无 | 二月 | 闰二月 |
1852年4月19日 | 谷雨(4月20日) | 谷雨(4月20日) | 三月 | 三月 |
按清朝时宪历,当时的春分出现在正月而非二月,与平山规则相悖。另外需要注意的是,当年中国冬月(日本腊月)的合朔日刻出现在午夜子时,中国为西历12月22日,日本则为12月23日。假想一下,如果中国的朔日也出现在12月23日,则上一年的闰八月会成为假闰月,12月23日开始的农历月则成了闰十一月。此种情形下,春分仍在正月。反过来,如果假设日本的那个朔日是在12月22日,按平山规则需置十一月。如此,秋分所在的八月与冬至所在的十一月间将包含三个农历月,故置闰九月。同时,冬至所在的十一月与春分所在的二月之间将仅有一个农历月。多出来的月份可以置闰月,少掉的月份就实在没法处理了,是真正的无解。接下来我们将会看到,这个假想的无解情形与近两个世纪后日本旧历将面对的2033年问题如出一辙。要是当年真的就出现了这一情形,恐怕平山规则也就早已被抛弃了吧。
现在再来看2033年问题也就很容易理解了:
朔日 | 中气 | 平山规则 | 闰十一月方案 |
---|---|---|---|
2033年8月25日 | 无 | ? | 八月 |
2033年9月23日 | 秋分(9月23日) | 八月 | 九月 |
2033年10月23日 | 霜降(10月23日) | ? | 十月 |
2033年11月22日 | 小雪(11月22日) 冬至(12月21日) | 十一月 | 十一月 |
2033年12月22日 | 无 | ? | 闰十一月 |
2034月1月20日 | 大寒(1月20日) 雨水(2月18日) | ? | 十二月 |
2034年2月19日 | 无 | ? | 正月 |
2034年3月20日 | 春分(3月20日) | 二月 | 二月 |
2034年4月19日 | 谷雨(4月20日) | 三月 | 三月 |
很明显,若严格地遵照平山规则,秋分所在的八月与冬至所在的十一月之间只有一个农历月。与我们之前的假想情形一样,这会是一个无解的情况。日本人其实也早已注意到了问题的严重性,想了多种方法来化解。但无论如何,必须得要修改或彻底抛弃平山规则才行。无论是直接参考中国规则,或是在平山规则中加上诸如冬至优先的细则,或是改回天保历与时宪历之前通行的平气法,都将得到闰十一月方案(如表中所示),而这也是日本历文化振兴协会于2015年推荐采用该方案的原因。
在我计算的公元3000年之前的所有日本旧历日期中,除2033年-2034年之外,平山规则还将于2223年(癸亥年)-2224年(甲子年)出现一次「故障」:
朔日 | 中气 | 平山规则 | 闰九月方案 |
---|---|---|---|
2223年8月27日 | 秋分(9月24日) | 八月 | 八月 |
2223年9月25日 | 霜降(10月24日) | ? | 九月 |
2223年10月25日 | 无 | ? | 闰九月 |
2223年11月23日 | 小雪(11月23日) | ? | 十月 |
2223年12月23日 | 冬至(12月23日) | 十一月 | 十一月 |
2224年1月21日 | 大寒(1月21日) | ? | 十二月 |
2224年2月20日 | 雨水(2月20日) 春分(3月20日) | 二月 | 正月 |
2224年3月21日 | 无 | ? | 二月 |
2224年4月19日 | 谷雨(4月20日) | ? | 三月 |
其实与2033年相比,这个「2223年问题」与我们最初假想的1851年的情形更是几乎完全一致。我的万年历计算中采用了冬至优先的规则,得到的是与中国农历一致的闰九月方案。
最后顺带一提,如果日本于2033年与2223年分别采纳闰十一月方案与闰九月方案,那整个公元第三个千年中国农历与日本旧历将仅有一次置闰上的区别,会出现在七个世纪之后的2728年(戊子年)-2729年(己丑年):
朔日 | 中气 | 中国农历 | 日本旧历 |
---|---|---|---|
2728年8月27日 | 秋分(9月23日) | 八月 | 八月 |
2728年9月26日 | 霜降(10月23日) | 九月 | 九月 |
2728年10月25日 | 小雪(11月22日) | 十月 | 十月 |
2728年11月23日 | 冬至(12月22日) | 十一月 | 十一月 |
2728年12月23日 | 无 | 闰十一月 | 十二月 |
2729年1月21日 | 大寒(1月21日) 雨水(2月19日) | 十二月 | 正月 |
2729年2月20日 | 春分(3月21日) | 正月 | 二月 |
2729年3月22日 | 无 | 二月 | 闰二月 |
2729年4月20日 | 谷雨(4月20日) | 三月 | 三月 |