0

使ってますdatetime

週(日曜日から土曜日まで)に選択されたユーザーのタイムシートのリストがあります

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

毎日、エントリごとに送信された時間を取得する必要があります(1日に複数のエントリが存在する可能性があります)。entry["work"]は、メンバーがそのエントリに費やした時間を返します。

何か案は?私はここでコードの答えを正確に探しているわけではありませんが、それを行うためのロジックをもっと探しています。たとえば、次のような毎日のエントリを要求できますmonday = [entry for entry in timesheet_entries if within_dates (monday etc)]。次に、時間を計算して、毎日同じことを実行します。

4

1 に答える 1

0

結果をどのように処理したいかは明確ではありません。曜日ごとに総労働時間 (時間) を集計したい場合は、この方法を試してください。

曜日は決まっているので、単純に曜日をループします。日ごとに、その日のエントリをフィルタリングしてから時間を収集します。defaultdictキーが曜日で、各エントリがその日のすべての時間のリストであるa を使用できます。

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 に答える