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
我正在做一个编程练习,其中我必须将 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