在C#/ .NET中,在基督面前处理日期的最佳方法是什么?

有没有内置的支持? 如果没有,是否有关于处理此类日期的共识?


链接到自己编码的解决方案或其片段非常受欢迎。

此范围内的日期没有内置支持,因此您必须编写自己的代码。

以下是http://flipbit.co.uk/2009/03/representing-large-ad-and-bc-dates-in-c.html的示例。

如果您正在引用DateTime值

任何共识都可能仅存在于与此类日期一致的社区内。 你在哪个地方工作? 天文学?


无论感兴趣的领域是什么,都可能有其他人经历过同样的问题。 我会先做一些研究,特别是如果你的日期需要与同一领域的其他软件进行互操作。 即使您必须编写自己的代码,您至少也可以了解其他人在编写自己的代码时遇到的问题。

我知道这个问题很老,但我在搜索中找到了它,可以为这个主题增加额外的见解。 在上面的评论中,有人认为日期差异大于1年。 除非有人计划在确切日期可以有用地推导出来之前很久(数千年),否则情况并非如此。 朱利安日期和格里高利日期所需的差异只是少数天,对于任何可以合理地尝试从现存历史记录中得出的特定日期,肯定少于3周。 为此目的有转换表。 我认为更大的问题来自于转换为公历。

不同的国家在不同的时间转换,他们转换时失去了不同的天数,因为他们没有同时转换。 有关如何进行转换的示例,请想象今天是10月1日,明天将是10月10日。在这种情况下,转换将导致该特定国家/地区损失9天。 另一个在一段时间之后转换的国家可能已经失去了11天,或12天,或13天等。另一个大问题是试图在特定日期推出季节。 由于日历不精确,随着时间的推移,昼夜平分点的进动导致季节的快速进展。 今天我们在七月份的北半球夏天。 3000年前,如果我们使用朱利安历法作为我们的标准,这个日历月可能发生在冬季中期。

同样重要的是要注意到古代世界中使用了各种各样的古代日历系统。 太阳和月球品种都存在,直到大约2000年前(当朱利安历法被发明时),没有现实的标准化尝试。 人们经常试图将朱利安日期更多地投射回历史,但这些努力是不合时宜的。 由于记录不一致导致的不确定性,不可能确定在与朱利安日历相关的特定日期发生的特定事件,除了涉及相当大的误差范围的四舍五入方式。 对于在公元前一千年之前发生的事件,该误差幅度可能是50年或100年(或某些时期更长)。 我们根本没有记录来建立一个非常准确的时间表。 从与现有记录相关的树环序列得出的碳日期有助于缩小各个区域和时期的误差范围,但它们不构成完全连通的记录,我们将始终有一个误差范围来处理。