0

我在用datetime

我有一个用户时间表列表,这些时间表是为一周选择的(周日到周六)

timesheet_entries = [entry for entry in timesheet_entries if within_dates(datetime.datetime.strptime(entry["work_performed_on"], "%Y-%m-%d").date())]

我需要检索每天为每个条目提交的时间(每天可以有多个条目)。entry["work"] 返回成员为该条目花费的时间。

有任何想法吗?我并不是在这里寻找代码答案,而是更多这样做的逻辑。例如,我可以要求每一天的条目,例如monday = [entry for entry in timesheet_entries if within_dates (monday etc)]然后循环计算时间并为每一天做同样的事情。

4

1 回答 1

0

目前尚不清楚您希望如何处理结果。假设您想要计算一周中每天工作的总小时数(时间),请尝试这种方法。

由于一周中的天数是固定的,因此只需循环遍历一周中的天数。对于每一天,过滤当天的条目,然后收集时间。您可以使用 a defaultdict,其中键是工作日,每个条目都是当天所有时间的列表。

from collections import defaultdict

total_times = defaultdict(list)

for i in range(0,7):
   total_times[i] = [entry['work'] for entry in timesheet_entries if within_dates(i)]

假设这里within_dates需要一个天数。

现在,要获得总数:

for i in total_times:
   print 'Total for i ', sum(total_times[i])
于 2012-10-30T10:34:22.240 回答