メンバの作業時間を顧客に報告する謎 excel の作成を楽にするために久しぶりに python を書いた。こんな感じの計算をしたい:
- 12:00-13:00は問答無用で休憩扱い
- 9:00始業、18:00終業なら稼働時間は8時間
- 9:00始業、12:30終業なら稼働時間は3時間
- 13:00始業、21:00終業なら稼働時間は8時間
これまでは見ただけで心が疲れる excel の if を使っていたが、python なら楽に書けた。
import datetime as dt import sympy as sp # 休憩時間 12:00-13:00 restTime = sp.Interval(12*60, 13*60) # 始業から終業までの時間から休憩時間を差し引き def getWorkTime(totalTime): workTime = (totalTime - restTime).measure return dt.time(int(workTime/60), int(workTime%60)) # 9:00-12:30の場合 start = dt.time(9, 0) end = dt.time(12, 30) totalTime = sp.Interval(start.hour * 60 + start.minute, end.hour * 60 + end.minute) getWorkTime(totalTime) # datetime.time(3, 0)が返る
0 件のコメント:
コメントを投稿