【问题标题】:TypeError: an integer is required (got type tuple) datetime PythonTypeError:需要一个整数(获取类型元组)日期时间 Python
【发布时间】:2020-04-13 02:44:41
【问题描述】:

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

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)

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

【问题讨论】:

  • 试试date(*a)
  • 我想知道为什么?您是否阅读了错误消息?有什么可推测的? 我导入了日期和时间增量。 这与问题有关吗?另外,请提供完整的错误消息。

标签: python date datetime timedelta


【解决方案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:00:00 的情况下如何获得输出?
  • @Rashida 这完全是另一个问题,我相信您可以在 SO 的其他地方找到答案。
  • @Rashida 我有删除 0:00:00 的答案
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2019-03-06
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    相关资源
    最近更新 更多