1.11 儒略日
核心概念
儒略日(Julian Day, JD)是一种连续计日的系统,从公元前 4713 年 1 月 1 日正午开始,每天递增 1。它不是中国古代的概念,但现代研究中国古代天文学时用它做时间换算。
核心概念
儒略日(Julian Day, JD)是一种连续计日的系统,从公元前 4713 年 1 月 1 日正午开始,每天递增 1。它不是中国古代的概念,但现代研究中国古代天文学时用它做时间换算。
一、为什么需要儒略日
不同文明使用不同历法。直接比较"汉太初元年冬至"和"罗马建城第 700 年某日"几乎不可能。儒略日提供了一个普适的时间标尺:
- 任何历法中的任何一天,都有唯一的 JD 值
- JD 值直接相减就是间隔天数
- 没有闰年、闰月、年号等麻烦
二、儒略日的起算点
| 项目 | 内容 |
|---|---|
| 起点 | 公元前 4713 年 1 月 1 日 12:00 UT |
| JD 值 | 起点为 JD 0 |
| 设计者 | Joseph Scaliger(1583 年) |
| 命名 | 以设计者父亲 Julius 命名,与儒略历无直接关系 |
Scaliger 选择这个起点是因为那一年同时是三种历法周期(太阳周 28 年、太阴周 19 年、罗马小纪 15 年)的起点——一个完美的"零年"。
三、简化儒略日
JD 的值非常大(现代日期对应约 2,460,000+),不便日常使用。因此有几种简写:
| 缩写 | 定义 |
|---|---|
| JD | 原始儒略日(约 246 万起) |
| MJD | 简化儒略日 = JD − 2,400,000.5,从 1858 年 11 月 17 日 0 时起 |
| RJD | 约化儒略日 = JD − 2,400,000 |
四、儒略日如何帮助中国古代天文学研究
4.1 干支纪日的换算
中国古代连续记录了三千多年的干支纪日(60 天一循环)。如果知道某个日期是"甲子日",但不知道是哪一轮,可以用 JD 推算。
算法思路:
- 任意选择一个已知对应(如公元 2000 年 1 月 1 日是 JD 2451545)
- 把古代日期换算到 JD
- JD 差除以 60 的余数对应天干地支
4.2 古代天象记录的验证
当史书记载"某年某月某日朔,日有食之",要验证这次日食是否真的发生过,步骤是:
- 将古代历法日期转化为 JD
- 用现代天文计算反推该 JD 时刻日月位置
- 验证是否具备日食条件
4.3 历法精度比较
将不同历法(太初历、大衍历、授时历等)对同一个节气的推步结果都换算为 JD,再和现代计算值比较,就可以定量评价每部历法的精度。
五、JD 日期换算公式(简化版)
对格里历日期 Y 年 M 月 D 日(M>2),儒略日近似计算:
a = floor(Y/100) b = 2 − a + floor(a/4) JD = floor(365.25 × Y) + floor(30.6001 × (M+1)) + D + 1720994.5 + b
实际使用中查阅天文年历或使用计算程序即可,不需要手算。
六、电子工具的取用
现代使用 Python 的 astropy 或命令行工具即可换算,常见的 JD 参考值:
| 日期 | JD |
|---|---|
| 公元前 2000 年 1 月 1 日 12:00 | 990806.0 |
| 公元前 104 年 1 月 1 日 12:00(太初历颁行前后) | 1683430.0 |
| 公元 2000 年 1 月 1 日 12:00(J2000.0) | 2451545.0 |
七、中国古代的等时概念
中国古代也有类似连续计日的体系:
- 干支纪日:从商代至今不间断的 60 天循环
- 积年/积日:历法推算中的起算点到目标日期的总天数(如上元积年,见 13.1)
这些虽然和儒略日原理不同,但都可以转化为 JD,实现古今对接。