2012-10-30 69 views
0

我使用datetimePython的日期 - 編程困境

我的用戶時間表,這是選擇一週列表(週日至至週六)

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)]然後循環通過caclulating時間,每天做同樣的事情。

+0

你'within_dates'功能只一個參數?是否像'within_days_back'? – jro

回答

0

它不清楚你想如何通過結果。假設你想要一週的每一天工作的小時數(時間)的總數,請嘗試這種方法。

由於本週的日子是固定的,只需循環一週的幾天即可。對於每一天,篩選當天的條目,然後收集時間(s)。您可以使用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])