库用于处理历史(大)日期和时间(例如,公元前11,043年)

library to work with historical (big) dates and time (eg, 11,043 BC)?

本文关键字:例如 公元前 043年 时间 日期 处理 用于 历史      更新时间:2023-10-16

是否有一个库可以处理历史(大)日期(例如,公元前11,043年)?得到世纪,千年?

对于一般的日期和时间,有标准的c++ 11时间类,Glib库提供了GDateTime类,在glibmm中有一个c++绑定Glib::DateTime。也许Boost库也有类似的接口。

如果你需要历史日期,比如恐龙出现的时间,你可以自己编写一个简单的类(除非我提到的其中一个选项足够好,在这种情况下,自己计算世纪或千年是非常容易的)。

编辑:大多数实现将时间表示为Unix时间中的秒数或微秒数,即自1970年以来,这意味着即使是64位整数也可能无法表示古代时间(您可以尝试计算或网络搜索或在维基百科上阅读这些限制)。

在这种情况下,一个很好的解决方案是使用一个单独的AncientTime类,它只有一个年份,其他任何你需要的东西,比如月/日/小时,都可以通过使用一个简单的标准DateTime类来实现,在这个类中,你可以忽略年份,或者通过一个薄包装将其归一化为0。

看看dateutil

递归规则和相对增量是你想要的。

相关文章: