python -/: 'datetime.timedelta' and 'datedelta' 不支持的操作数类型

标签 python datetime timedelta

我正在尝试计算一个时间段长度,但由于一个日期是 timedelta另一个是 datedelta ,抛出此错误:

Unsupported operand type(s) for /: 'datetime.timedelta' and 'datedelta'

代码:

from datetime import timedelta
from datedelta import datedelta
import math

step_period = datedelta(months=1)
to_from = timedelta(weeks=6)
number_of_steps = math.ceil((to_from) / step_period)

注意:datedelta是一个Python库:它可以通过sudo pip3 install datedelta获得

可能的输入:

我考虑的时间长度是 6 周 ( to_from ),我希望将其分成 1 个月 ( number_of_steps ) 的 block ( step_period )。会有多少个部门?

预期输出: number_of_steps = 2

我该如何解决这个问题?

最佳答案

您需要转换为相同的单位,然后进行除法: (已安装datedelta包)

from datetime import timedelta
from datedelta import datedelta
import math

def delta_to_days(delta):
    return delta.days + delta.months * 30

step_period = datedelta(months=1)
to_from = timedelta(days=3)
number_of_steps = math.ceil(delta_to_days(step_period) / to_from.days )
print(number_of_steps)

输出:

10

关于python -/: 'datetime.timedelta' and 'datedelta' 不支持的操作数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55588854/

相关文章:

python - 从列表列表创建新列表并在 Python 中精确打印

python - 如何避免循环依赖?

python @memoize 与 functools.lru_cache

python - 我有一个长字符串,其中包含多种格式的日期(dd-mm-yyyy、mm-dd-yyyy 等)。如何将它们全部转换为相同的格式?

java - 如何仅解析四位数年份(使用 Joda Time)?

python - 将 timedelta 计算转换为 "%A, %B %d, %Y"的问题

python - 从 TimeDelta 到 Pandas 中的 float 天数

python - 如何将 timedelta 转换为小时

python - Django 中的正则表达式用于配置 url 模式

javascript - 将纪元转换为月份