我正在尝试计算一个时间段长度,但由于一个日期是 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/