TypeError: an integer is required (got type tuple) datetime Python

TypeError: an integer is required (got type tuple) datetime Python

我正在尝试计算两个日期之间的天数。这是我的代码:

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)

我想知道为什么?我导入了日期和时间增量。有人可以帮忙吗?提前致谢

您需要将 3 个参数传递给 date(),而不是 tuple。您可以使用以下命令解压缩函数中的元组:

f = date(*a)
s = date(*b)

您遇到错误是因为您向 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

*取出传入的tuple的值(unpack the tuple)


要单独获取天数,请使用 .days :

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