Python 给定日期最多加 999999999 天的库

Python Library For Adding Up To 999999999 Days To a Given Date

我正在做一个编程练习,其中我必须将 N 天添加到给定日期,其中 N 可以达到 999999999,并且给定日期在 3000 年之前使用 Python。除了 datetime 之外,还有其他图书馆可以做到这一点吗?

我知道 Java 有一个库可以对较大的 N 值执行此操作,但是对于 Python,我只找到了一个名为 datetime 的库,但它的问题在于1. N和2的大值太慢。由于N可能高达1000000000,日期值将超出范围。

datetime.date 支持到 9999 年底。这似乎足够了......但是 10^9 天超过了 2.5 百万 年。

另一个处理时间的 Python 库称为 time,它主要与 C 时间函数一起工作。

我发现 time.ctime() 从纪元获取时间(以秒为单位)(参数默认为该格式的当前时间 - time.time())并输出默认格式的时间字符串。

您可以使用 time.strptime() 解析给定时间以获取时间结构,然后使用 time.mktime() 将其转换为纪元秒。然后将您的 N 天添加为秒数。瞧!你有几秒钟的时间从纪元开始。

这样,lib 只处理解析和转换,但数学是在整数上完成的。

测试当前时间(不解析),N=10^9:

>>> test = time.time()
>>> print(test)
1561378571.5154927
>>> time.ctime(test)
'Mon Jun 24 14:16:11 2019'
>>> test_after_N = test + 10**9 * 24 * 3600
>>> print(test_after_N)
86401561378571.52
>>> time.ctime(test_after_N)
'Sun Jun 27 13:16:11 2739926'

如果您需要其他格式,您可能需要解析或剪切输出,或者查看是否可以更改默认格式。

可以在此处找到模块文档 - https://docs.python.org/3/library/time.html