0
シンプルなタイムシートスクリプトを作成したいと思います。私の入力ファイルは次のようになりますPythonで時間を加算したり減算する方法
9:00 17:00
10:45 12:35
11:00 15:00
私はそれを読んで、1日あたりの作業時間を計算し、それらの時間を合計したいと思います。 1日が12:00前に始まって13:00以降に終わったとき、私は昼休みに30分を差し引きたい。これまで
私の試みは、次のとおりです。
import sys
from datetime import datetime
gap = datetime.strptime('00:30','%H:%M')
hours = []
for line in sys.stdin:
(start_time,end_time) = line.split()
start_time = datetime.strptime(start_time, '%H:%M')
end_time = datetime.strptime(end_time, '%H:%M')
#if start_time before 12:00 and end_time after 13:00 then subtract gap
hours.append(end_time-start_time)
print sum(hours)
私はif文の行が動作するようにして時間を合計すると、あなたは日時を合計することができないのいずれかとして動作するようには思えない取得する方法がわかりません。 timedeltaタイプ。
コメントのリンクのおかげで、sum(hours)をreduce(operator.add、hours)に置き換えることができます。
残りの部分は、start_timeが12:00より前でend_timeが13:00より後であるかどうかをテストする方法です。そうであれば、timedeltaを30分短縮する方法です。
などの基本的な操作を使用することができます見てみましょう:http://stackoverflow.com/questions/13897246/python-time-subtraction – Fusseldieb
そして、ここで:http://stackoverflow.com/questions/3096953/difference-between-two-time-intervals-in-python – Fusseldieb
@Fusseldieb私はあなたのリンクを見てくれてありがとう。 reduce(operator.add、hours)は時間を追加する方法です。 ifステートメントとギャップ減算はどのようにして行いますか? – eleanora