OverflowError mktime参数超出范围

时间:2015-12-14 17:19:07

标签: python django mktime

解决了一个天真的日期时间问题后,我在生成图表的视图上面临一个新问题。现在我得到 mktime参数超出范围。 我不知道如何解决它。我没有编写代码,我是从我的同事那里使用的,我似乎无法理解为什么它会失败。我认为它与一个超时运行的函数有关,并且错误弹出。

updateKnopfRot

1 个答案:

答案 0 :(得分:1)

我认为问题在于这种情况。

while lastmonth <= int(month) or lastyear<int(year):

12月期间month=12lastmonth <= int(month)始终为True。因此,即使lastyear比当前year更多,循环也始终返回True。

如果循环在上一年,或者循环在当前年份且月份不在将来,您希望循环。因此,我认为您要将其更改为以下内容:

while lastyear < year or (lastyear == year and lastmonth <= month):

为了确保代码正常工作并理解它,您需要向循环中添加大量打印语句,查看lastmonthlastyear如何更改,并检查循环何时退出你期待它。您还需要针对yearmonth的其他值对其进行测试,以便下个月不会中断。理想情况下,您希望将此位代码提取到单独的函数中。如果循环只返回(month, year)整数列表,而不是同时进行大量日期格式化,那么理解循环会更容易。然后添加单元测试会更容易。