TypeError:需要一个整数(got类型元组)datetime Python

问题描述 投票:0回答:2

我正在尝试确定两个日期之间的日期。这是我的代码:

from datetime import date, timedelta
def days_diff(a, b):
    f = date(a)
    s = date(b)
    return abs(f-s)
print(days_diff((2014, 8, 27), (2014, 1, 1)))

但我收到此错误:

TypeError: an integer is required (got type tuple)

我想知道为什么吗?我导入了日期和时间增量。谁能帮忙吗?在此先感谢

python date datetime timedelta
2个回答
1
投票

您遇到了错误,因为您将元组传递给了date(),该元组接受值而不是元组。试试这个:

def days_diff(a, b):
    f = date(*a)
    s = date(*b)
    print(f,s)
    return abs(f-s)

现在称呼它:

print(days_diff((2014, 8, 27), (2014, 1, 1)))

这会给您:

2014-08-27 2014-01-01
238 days, 0:00:00

*取出传递的元组的值(解开元组的包装。)>


要独自度过日子,请使用.days

return print(abs(f-s).days)

0
投票

您需要将3个参数传递给date(),而不是tuple。您可以使用以下方法在函数中打开元组的包装:


-1
投票

[date期望三个参数,而不是元组,所以:

© www.soinside.com 2019 - 2024. All rights reserved.