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

时间:2019-04-09 08:57:50

标签: 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)

NB:datedelta是一个Python库:可以通过sudo pip3 install datedelta

获得

可能的输入:

我要考虑的时间长度是6周(to_from),我希望将其分为1个月(number_of_steps)的大块时间(step_period)。会有多少个师?

预期输出: number_of_steps = 2

我该如何解决?

2 个答案:

答案 0 :(得分:1)

我很确定timedelta将不允许输入几个月的时间。我也找不到您拥有的datedelta。相反,我可以按照以下步骤复制您的答案:

In: math.ceil(timedelta(weeks=6)/timedelta(weeks=4))
Out: 2

答案 1 :(得分:1)

您需要转换为相同的单位,然后进行除法: (已安装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