gpt4 book ai didi

python - 如何从 Python 中的日期时间对象计算年份分数?

转载 作者:行者123 更新时间:2023-12-02 19:59:29 26 4
gpt4 key购买 nike

我有两个表示为 datetime 对象的日期,并试图计算这两个日期之间的时间(以年为单位)(相当于 Excel yearfrac 函数)。

使用 relativedelta 我可以获得年数、月数和日期之间的天数,但不是年的分数,我还可以减去日期以获得天,但除以 365.25 似乎没有得到我期望的答案。

start_date = dt.datetime(2010, 12, 31)
end_date = dt.datetime(2019, 5, 16);
delta = relativedelta(end_date, start_date);
print(delta)

这是我得到的输出:

relativedelta(years=+8, months=+4, days=+16)

我要找的是:8.38

如果我使用下面的代码:

delta = (end_date - start_date)/365.25
print(delta)

我得到以下输出:8 天,8:56:10.841889

最佳答案

我刚刚计算了 8 + ((months * 30) + days)/365 = 8.3726。这是假设所有月份都是 30 天,一年是 365 天。不太精确,但可以放在一条线上。除以错误的数字 365.25 会得到什么?它必须有多精确?

如果你需要绝对的精确度,我会这样做:

from datetime import date

d0 = date(2010, 12, 31)
d1 = date(2019, 5, 16)
delta = d1 - d0
delta_fraction = delta.days/365.25
print(delta_fraction)
# Output: 8.72348

编辑这是一个简化的解决方案,假设一年中有 365.25 天(您可以使用 365.2425 天来准确计算 400 年的异常(exception)情况)来计算闰年。如果您需要它与 excel 的输出完全匹配,您最好为 excel 编写一个 vba 宏

关于python - 如何从 Python 中的日期时间对象计算年份分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56192936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com