2010-09-02 155 views
0

我想减去两个值,一个在当前记录中,然后是下一个记录中的下一个......他们是时钟条目,我想计算一个员工花在他上的时间量/她的休息时间,所以我不得不减去员工计时的时间以及员工计时返回的时间。这将会记录多次,然后在最后我还要总计所有休息时间。减去两个值

那么我该如何做到这一点?我在Django BTW中做这个。

UPDATE 的记录看起来有点像这样:

employee_id, rec_date, start_time, end_time 
18, 2010-08-23, 09:58:00, 14:13:00 
18, 2010-08-23, 14:39:00, 18:47:00 
19, 2010-08-23, 14:15:00, 18:31:00 
21, 2010-08-23, 12:05:00, 14:52:00 
21, 2010-08-23, 15:23:00, 18:49:00 
21, 2010-08-31, 08:00:00, 12:00:00 
21, 2010-08-31, 12:45:00, 19:00:00 
+0

我不知道该怎么做......所以我还没有尝试过任何东西......我只是有我想要做的逻辑 – Stephen 2010-09-02 14:25:01

+0

既然你说这是基于外部数据集,提供一组样本数据将有很大帮助。 – 2010-09-02 17:25:52

+0

@Jordan:我添加了一个示例。 – Stephen 2010-09-02 18:27:23

回答

0

你必须遍历时钟动作和做手工计算。这种东西:

breaks = 0 
break_start = None 
clock_actions = user.clock_actions.filter(date=desired_day).order_by('date') 
for action in clock_actions: 
    if action.type == 'CLOCK IN': 
     break_start = action.time 
    elif break_start is not None: 
     breaks = breaks + action.time - break_start 
     break_start = None 

您可能需要调整减法timedelta对象的工作,取决于您选择的字段的时间。

+0

让我看看这是否能解决......虽然记录来自外部来源,并且没有清楚地标记为“时钟输入”或“时钟输出” – Stephen 2010-09-02 14:26:29

+0

是的,好吧,当细节是失踪... – OmerGertel 2010-09-02 14:45:28