代码之家  ›  专栏  ›  技术社区  ›  Mat

处理历史日历日期

  •  10
  • Mat  · 技术社区  · 16 年前

    有什么标准和策略来处理旧日历中描述的历史日期?

    当代 Gregorian 使用内置的编程语言库或数据格式(如 ISO8601 , RFC3339 和RDF的 OWL-Time 本体论。早期的陈述,如 Julian 日历,宗教日历, regnal years (例如) 6月13日查尔斯二世 )它们的变化似乎并没有得到很好的满足。

    我特别感兴趣的是分析和存储不同日历的历史家谱日期与当代数据。在不同的日历中是否有涵盖日期的rdf本体论?猫头鹰时间似乎不包括日历。

    2 回复  |  直到 13 年前
        1
  •  5
  •   Jonathan Leffler    13 年前

    你需要什么在一定程度上取决于你在追求什么。我认为你最好将日期存储在一个简单的统一格式中,比如R.D.(rata die或r d)格式中的“日历计算,第三版”(由StarBlue引用)。不过,我也认为你应该保持原文作为记录的出发点是什么,以便翻译到RD可以根据要求核实。

    举个例子,如果你走得够远的话,英国的新年(至少在某种程度上)不是1月1日而是3月25日(淑女节)。例如,在中世纪早期,你可能会发现,我们目前计算为1167年2月14日的数据将被当时记录日期的人视为1166年2月14日。朱利安和格里高利历法在1752年9月(英国和它的殖民地)之间变化的一个有趣的副作用是,这一年短了12天。353天而不是365天的税收计算将是非常糟糕的,因此税年结束改为现在的4月6日——因此,尽管历法发生了变化,但这一年仍然保持了365天。(好的;从技术上讲,这是有根据的推测。不过,这是英国为何在4月6日结束纳税年度的合理理由。)

    因此,为了处理“6月13日第三查尔斯II”,你需要知道输入是格雷纳格式,日期是3,六月(不太难),而查理二世统治的第十三年(1630—05-29至1685-02-06);从1649到01-30成为国王,但直到1661-04-23才加冕;从1660年起,文件上的日期就好像他从1649年开始执政一样;参见 Wikipedia 更多信息)。所以,据推测,所指的日期是1662-06-13年的儒略历(因为英国直到1752年才改用公历)。

        2
  •  4
  •   Jonathan Leffler    16 年前

    我想你知道这本书 Calendrical Calculations “莱因戈尔德和德肖维茨?