这个换算器有什么用
本工具可将中美洲玛雅文明的长计历日期——以「Baktun.Katun.Tun.Winal.Kin」的形式书写——换算为对应的西方历法日期。它会给出推算公历(proleptic Gregorian)日期、推算儒略历(proleptic Julian)日期、儒略日数(Julian Day Number),以及在两套玛雅周期历中的对应位置:260 天的卓尔金历(Tzolkin)和 365 天的哈布历(Haab)。整个换算只用到通用的算术运算,因此全球通用,不依赖任何特定国家或地区的规则。
使用方法
从下拉菜单中分别选择长计历的五个位数。请注意,Winal 这一位只能取 0 到 17,因为每 18 个 Winal 才凑足一个 Tun。接着选择一个对应常数(correlation constant):GMT(584283) 是现代的 Lounsbury/修正版 Goodman–Martinez–Thompson 值(默认选项,对应周期结束日为 2012 年 12 月 21 日);GMT(584285) 则是经典 GMT 值(对应 2012 年 12 月 23 日)。这两者恰好相差两天。
公式解析
首先,长计历会按各位数的天数权值换算为天数总和 D:Baktun = 144,000、Katun = 7,200、Tun = 360、Winal = 20、Kin = 1。儒略日数为 $$\text{JDN} = D + \text{GMT}$$ 对应值,其中对应值即原点 0.0.0.0.0 所对应的儒略日数。其中 $$\begin{gathered} \text{JDN} = D + \text{GMT} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} D &= 144000\,\text{Baktun} + 7200\,\text{Katun} \\ &\quad + 360\,\text{Tun} + 20\,\text{Winal} + \text{Kin} \end{aligned} \right. \end{gathered}$$ 再用 Fliegel–Van Flandern 整数算法把 JDN 转换为公历日期,并用一套类似的算法换算推算儒略历日期。卓尔金历与哈布历的位置则由 D 的模运算得出,并以原点对应 4 Ahau 8 Kumku 作为锚点。
实例演算
以长计历 13.0.0.0.0 配合 GMT(584283) 为例。$$D = 13 \times 144{,}000 = 1{,}872{,}000 \text{ 天}$$ $$\text{JDN} = 1{,}872{,}000 + 584{,}283 = 2{,}456{,}283$$ 对应公历的 2012 年 12 月 21 日。此时历法轮(Calendar Round)回到著名的 4 Ahau 3 Kankin。
常见问题
为什么会有两个对应常数?学界对于究竟哪一个儒略日对应玛雅历原点仍有争议。584283 与 584285 是被引用最多的两个数值;它们会让每个西方日期相差两天,但卓尔金历与哈布历的名称不变,因为这两套历法只取决于 D。
这里的公历和儒略历有什么区别?两者都是把现代历法向过去回推得到的结果。对于 1582 年之前的日期,推算儒略历与推算公历之间的天数差会随时间逐渐增大。
公元前 1 年是如何处理的?算法内部采用天文纪年法,即第 0 年等同于公元前 1 年,最终显示结果时会把非正数的年份转换为「公元前(BC)」标注。