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

在C#/.NET中,处理基督诞生前的日期的(最佳)方法是什么?,c#,.net,datetime,C#,.net,Datetime,有任何内置的支持吗?如果没有,在处理这些日期方面是否有共识 非常欢迎指向自己编码的解决方案或其片段的链接。如果您指的是DateTime值的处理

有任何内置的支持吗?如果没有,在处理这些日期方面是否有共识



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

如果您指的是DateTime值的处理 任何共识都可能只存在于与此类日期相关的社区内。你工作的领域是什么?天文学



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

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


下面是一个例子。

我知道这个问题很老,但我在搜索中找到了它,可以为这个主题添加更多的见解。在上面的评论中,有人假设日期差将大于1年。除非你计划追溯到一个远早于准确日期(数千年)的时代,否则情况就不是这样了。朱利安日期和格里高利日期所需的差值仅为一小部分天数,对于任何一个可以合理地从现存历史记录中得出的特定日期,肯定少于3周。有用于此目的的转换表。我认为更大的问题来自公历的转换

不同的国家在不同的时间转换,转换时损失的天数也不同,因为它们没有在同一时间转换。例如,假设今天是10月1日,明天是10月10日。在这种情况下,转换将导致该特定国家损失9天。另一个在一段时间后转换的国家可能损失了11天、12天或13天,等等。另一个大问题是试图在特定日期得出季节。由于历法的不精确性,春分的进动导致了整个日历年中季节的快速发展。今天我们在北半球的七月里有夏天。3000年前,如果我们以儒略历为标准,这个日历月可能发生在隆冬


值得注意的是,古代世界使用了各种各样的古代日历系统。太阳和月球都存在,直到大约2000年前(朱利安历法发明时),才有实际有效的标准化尝试。人们经常试图将朱利安的年代追溯到更久远的历史,但这些努力是不合时宜的。由于不一致记录造成的不确定性,不可能确定某一特定事件发生在与儒略历相关的特定日期,除非以一种涉及相当大误差的循环方式。对于发生在公元前一千年之前的事件,误差幅度可能为50年或100年(在某些时期甚至更长)。我们根本没有记录来建立一个极其准确的时间线。从与现存记录相关的树木年轮序列中提取的碳日期有助于缩小不同地区和时期的误差幅度,但它们并不能构成一个完全相连的记录,我们总是要处理误差幅度。

只是好奇——为什么?你至少看到了两种不同的日历——公元前40年左右的朱利安和1580年左右的格里高利历,日期、年份等不同。听起来像是一场噩梦。我想重写一些我小时候开始使用的时间轴软件(turbo pascal)。那是几年前的事,不是完整的日期。甚至是几年都是准确的,没有参考日历吗?时间变化不是超过1.0年吗?约翰,这是一个复杂的函数,有很多参数(比如日历是什么时候在地球上的哪个地方出现的),但在内部,每个日期只能由一个数据点表示:从某个参考时间起经过的刻度。如何向外界表达它,这可能非常复杂。当然,看看NodaTime:不,不是天文学。而是历史。不怀疑历史;你没有说“BCE”,或者只是把它们和你外部定义的一个时代联系起来使用。恐怕我会自己编写代码的。只需在这里签入,以确保我没有遗漏代码位置的sth.ready present.tx,但我担心它不适合我的需要。其他链接非常受欢迎。为了防止类似的事情再次发生,请在这个答案中包含链接帖子的重要部分,这样我们就不会再留下不太有用的一行了。谢谢