比较不同历法中的农历日:日界、月序与差异
比较记录
“农历日”可以表示不同的事物。在中国历法中,通常指一个农历月内按顺序编号的民用历日。在源自藏历的计算中,它可以指长度不定的月相单位,其编号再分配给历日。因此,看似相同的月、日数字,可能描述不同类型的日期。
比较也需要共同的起点:同一个瞬间,或采用明确约定的民用历日期。同一瞬间可用不同时区表示;一个民用历日期则涵盖整天,其边界取决于历法和参考时间。
| 字段 | 应保留的细节 | 重要原因 |
|---|---|---|
| 比较对象 | 带时区的精确时刻,或明确的民用历日期 | 区分时间点与一整天 |
| 民用历 | 公历或儒略历,包含年、月、日 | 相同的书写数字可能指不同日子 |
| 传统历法 | 中国、越南、韩国历法,或明确名称的藏历衍生版本 | 确定日期背后的规则 |
| 参考约定 | 必要时记录标准时间、参考经线和日界 | 决定某事件归属哪一天 |
| 年 | 完整年份或纪年,必要时含周期信息 | 避免循环年名的歧义 |
| 月 | 月序或原始月名,以及普通月或闰月属性 | 区分同名的两个不同月份 |
| 农历日 | 日序;适用时注明重复日期的第几次出现 | 单一数字可能对应不止一天 |
| 历法记录 | 转换所用的出版物或计算版本 | 保存结果依据,对历史日期尤其重要 |
将原始日期与对应民用历日期一并保存。仅有翻译后的月名,无法说明换算采用了什么规则。
不同的分界
中国历法中的初一,是包含天文新月时刻的民用历日。因此,初一的一部分时间可能在新月瞬间之前。之后的日序随民用历日期逐日增加,一个月为 29 或 30 天。越南和韩国历法使用相同大类的编号日,但不同的参考时间可能将同一天文事件归入不同日期。
十五是这一序列中的位置,并非精确的满月时间戳。新月到满月的间隔会变化,而初一从民用历日界开始,并非从合朔时刻开始。因此,精确满月可能发生在十五之前或之后。
在源自藏历的计算中,一个太阴日代表月球相对太阳的计算黄经增加 12 度。三十个这样的区间组成完整月相周期,但其持续时间各不相同。传统天文模型提供这些区间,再用约定的黎明分界将其编号分配给普通日。
按 Phugpa 的分配规则,如果一个区间完全经过于两次黎明之间,它在普通日序列中便没有对应日期。如果一个区间跨越两次黎明,其编号就会出现两次。以下示意序列说明区别。
| 印载的农历日序列 | 解释 |
|---|---|
| 5, 7, 8 | 日期 6 被省略 |
| 8, 8, 9 | 日期 8 在两个连续的普通日重复 |
两种情况下,星期顺序都照常推进。闰月与这两种模式是不同的概念:它增加一整个月,而不是改变月内的日序。
实例:为什么农历日期不一致
这些实例比较的是各历法参考时钟下书写相同的公历日期,并非将同一个时间戳在时区之间转换。
2007年二月17日:新年前后两侧
| 历法 | 农历年 | 农历月 | 农历日 | 2007 年新年 |
|---|---|---|---|---|
| 中国,UTC+8 | 2006 | 普通 12 月 | 30 | 二月18日 |
| 越南,UTC+7 | 2007 | 普通 1 月 | 1 | 二月17日 |
这里应核查工具采用哪一种历法,以及正月何时开始。同一次新月在 UTC+7 落在 二月17日,在 UTC+8 却落在 二月18日。因此,二月17日 在越南是新年,在中国则是上一年的最后一天。这是一个特定分界造成的差异,并不是两种历法始终相差一天。
1985年一月21日:日序相同,月份不同
| 历法 | 农历年 | 农历月 | 农历日 | 1985 年新年 |
|---|---|---|---|---|
| 中国,UTC+8 | 1984 | 普通 12 月 | 1 | 二月20日 |
| 越南,UTC+7 | 1985 | 普通 1 月 | 1 | 一月21日 |
两种历法都给出初一。将输入日期移动一天并不能解释这个差异;应将月序追溯至冬至。
包含冬至的月份定为十一月。1984 年,冬至在 UTC+7 的 十二月21日,却在 UTC+8 的 十二月22日。因此,越南将始于 十一月23日 的月份定为十一月,中国则将始于 十二月22日 的月份定为十一月。依次向后数,一月21日 在越南成为正月,在中国却是十二月。
中国的月份序列包含一个始于 1984年十一月23日 的闰十月。越南则有一个1985年三月21日至四月19日的闰二月,此后两种历法的月序重新一致。
这些有文献记录的差异,并不表示中国日期转换器有故障。不过,两个声称采用相同中国历法、UTC+8 参考时间及民用历日期规则的工具,应得出一致结果。若结果不一致,应核查实际设置,并用独立的中国历法对照表比较争议日期及附近月首。历法之间的差异不能解释真正的同历法错误。
月份边界与转换错误
接近午夜的新月,在两种参考时间下落在不同民用历日期时,可能造成一天的差异。闰月安排不同,则可能造成更大的月、日标签差异。差异出现的位置,有助于确定需要比较什么。
先核查历法版本和参考约定,再比较相关月份的起始日。计算日序前,确认每个月是普通月还是闰月。对于源自藏历的历法,还应查看省略和重复的日序。若不考虑这些调整,只从月首数普通日,便无法重现其农历日期。
如果两个结果声称采用相同规则,差异可能来自数值精度、过时的对照表、抄录错误或实现错误。非常接近日界的事件,对细微计算差别尤其敏感。应比较底层事件时刻或已出版的月份表,而不是把所有不一致都当作地区差异。
节日实际安排在哪一天庆祝是另一个问题。庆祝移到周末,或为省略日期设置特殊规则,都不会改变历法的日期序列。