晋江文学城
下一章 上一章  目录  设置

57、JDN(上) JDN上 ...

  •   四人围坐在一张旧木桌旁,桌上摊着一本翻到一半的历法笔记。

      苏五震先开口:“JDN,儒略日数。不是儒略历里的日期,而是一串连续整数。起点是公元前4713年1月1日中午12时,儒略历,世界时。那一刻记作 JDN 0。”

      苏六坎接话:“JDN 只记整日。带小数的叫 JD,儒略日。比如 2000年1月1日 12:00 UT,对应 JD 2451545.0,JDN 就是 2451545。”

      苏七离说:“它的好处是避开年、月、闰年这些复杂规则。要算两个日期相差多少天,直接相减就行。所以天文学、历史年代学和历法换算里常用。”

      苏八兑补充:“不过要注意,儒略日的‘一天’从正午算起,不是从午夜。一个观测夜落在同一个 JDN 里,记录起来更方便。”

      苏五震点头:“它还有一个简化版本,叫 MJD,简化儒略日。公式是 MJD = JD − 2400000.5,起点是 1858年11月17日 0时,数字会短一些。”

      苏六坎问:“那怎么把公历日期转成 JDN?”

      苏七离在纸上写:

      设公历年份为 Y,月份为 M,日期为 D。若 M ≤ 2,则令 Y = Y − 1,M = M + 12。
      再算:

      a = ⌊Y / 100⌋
      b = 2 − a + ⌊a / 4⌋
      JDN = ⌊365.25 × (Y + 4716)⌋ + ⌊30.6001 × (M + 1)⌋ + D + b − 1524

      苏八兑提醒:“这个公式适用于 1582年10月15日及之后的格里高利历。之前的日期要用儒略历版本,常数会不同。”

      苏六坎笑了笑,指尖在桌沿轻轻敲了两下,像给一段话落了个休止符。

      “上篇先到这里。”他说,“下篇可以接着算 JDN 怎么反推回公历日期。”

      苏月巽把散在桌角的纸页拢到一起。纸上写满了数字:2400000.5、1858年11月17日、7980年,还有几行被反复划掉又重写的算式。她忽然觉得,这些数字并不只是冷冰冰的中间量,它们更像一把钥匙,插进儒略日那条漫长的时间轴,拧一下,就能把公元纪年、月份和日期一点点转出来。

      “反推回去,其实也不难。”苏六坎说,“先把 JDN 加上 0.5,再减去 2400001,就得到 MJD。然后从 MJD 出发,按公式算出年、月、日。只是中间要处理闰年、格里高利历改革,还有那个容易让人发晕的 1582 年 10 月。”

      苏月巽点头:“所以 JDN 像一张总账,公历、农历、儒略历,都只是从它上面分出来的明细。”

      “差不多”,苏六坎。

      苏月巽把最后一张纸夹进笔记本里:“那下篇就从 MJD 开始?”

      “从 MJD 开始。”苏六坎说,“先把它拆成年、月、日,再看 1582 年那十天是怎么消失的。”

  • 昵称:
  • 评分: 2分|鲜花一捧 1分|一朵小花 0分|交流灌水 0分|别字捉虫 -1分|一块小砖 -2分|砖头一堆
  • 内容:
  •             注:1.评论时输入br/即可换行分段。
  •                 2.发布负分评论消耗的月石并不会给作者。
  •             查看评论规则>>