解决了一个天真的日期时间问题后,我在生成图表的视图上面临一个新问题。现在我得到 mktime参数超出范围。 我不知道如何解决它。我没有编写代码,我是从我的同事那里使用的,我似乎无法理解为什么它会失败。我认为它与一个超时运行的函数有关,并且错误弹出。
updateKnopfRot
答案 0 :(得分:1)
我认为问题在于这种情况。
while lastmonth <= int(month) or lastyear<int(year):
12月期间month=12
,lastmonth <= int(month)
始终为True
。因此,即使lastyear
比当前year
更多,循环也始终返回True。
如果循环在上一年,或者循环在当前年份且月份不在将来,您希望循环。因此,我认为您要将其更改为以下内容:
while lastyear < year or (lastyear == year and lastmonth <= month):
为了确保代码正常工作并理解它,您需要向循环中添加大量打印语句,查看lastmonth
和lastyear
如何更改,并检查循环何时退出你期待它。您还需要针对year
和month
的其他值对其进行测试,以便下个月不会中断。理想情况下,您希望将此位代码提取到单独的函数中。如果循环只返回(month, year)
整数列表,而不是同时进行大量日期格式化,那么理解循环会更容易。然后添加单元测试会更容易。