【发布时间】:2015-10-13 17:09:41
【问题描述】:
我需要比较两个时间字段的值并计算总工作时间。
我的功能(我尝试过的)
def difft(start,end):
a,b,c,d = start.hour, start.minute, start.second, start.microsecond
w,x,y,z = end.hour, end.minute, end.second, end.microsecond
delt = (w-a)*60 + (x-b) + (y-c)/60. + (z-d)/60000000
return delt + 1440 if delt<0 else delt
def myfunction():
attendance = StaffAttendance.objects.get(id=1)
time_sheets = []
t_times = TimeSheet.objects.filter(staff_attendance=attendance,is_deleted=False).order_by("time")
for t in t_times:
time_sheets.append(t.time)
#timesheets = [datetime.time(4, 0), datetime.time(6, 0)]
total_time = 0
times = []
for time in time_sheets:
if time in times:
m = difft(times[0],time)
total_time += m
times = []
else:
times.append(time)
if time in times: 这个块总是返回False。
如何从 django 时间字段计算总工作时间。我是 Python/Django 的新手。所以我对python日期不太了解。你能帮我解决这个问题吗?谢谢。
【问题讨论】:
-
能不能放个打印语句看看循环中
time_sheets和times的值是什么? -
if time in times:将始终返回 false,因为times是一个空列表 ([])。