我有这样的代码,我想检查加班的时间范围并加总。
目前,我正在使用此代码尝试out.hour+1
,但无效。
overtime_all = 5 overtime_total_hours = 0 out = datetime.time(14, 30) while overtime_all > 0: overtime200 = object.filter(time__range=(out, out.hour+1)).count() overtime_total_hours = overtime_total_hours + overtime200 overtime_all -=1 print overtime_total_hours
如何在每个循环中添加1
小时?...
答案 0 :(得分:1)
Timedelta(来自datetime
)可用于递增或递减datatime
个对象。不幸的是,它不能直接与datetime.time
个对象组合。
如果time
列中存储的值为datetime
个对象,则可以使用它们(例如:my_datetime + timedelta(hours=1)
)。如果它们是time
个对象,您需要考虑它们是否代表某个时刻(在这种情况下,它们应该转换为datetime
个对象)或持续时间(在这种情况下,它可能是更容易将其存储为表示总分钟数的整数,并对整数执行所有操作。
答案 1 :(得分:1)
我现在找到了解决方案,这是有效的。
overtime_all = 5 overtime_total_hours = 0 out = datetime.time(14, 30) while overtime_all > 0: overtime200 = object.filter(time__range=(out,datetime.time(out.hour+1, 30))).count() overtime_total_hours = overtime_total_hours + overtime200 overtime_all -=1 print overtime_total_hours
我确实将out.hour+1
更改为datetime.time(out.hour+1, 30)
其工作正常,但我不知道是否有更紧凑/最佳解决方案。