メンバの作業時間を顧客に報告する謎 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 件のコメント:
コメントを投稿