這個計算器的功能
這個工具會計算上班(打卡進)到下班(打卡出)之間共有多少小時,並且能正確處理跨過午夜的班別。只要以 24 小時制輸入兩個時間,再加上可選填的無薪休息時間,就能得出總時長與實際可計薪的工時。
使用方法
先輸入上班的時與分,再輸入下班的時與分。如果下班時間早於上班時間,計算器會自動判定這是跨夜班別,並自動加上一整天的時間。若有無薪休息,請以分鐘為單位填入,系統會從可計薪工時中扣除。
公式說明
兩個時間都會先換算成「自午夜起算的分鐘數」。總時長為 \(((\text{下班} - \text{上班} + 1440) \bmod 1440)\);先加上 1440(一天的總分鐘數)再取餘數,就能確保即使是跨夜班別也會得到正數結果。可計薪分鐘數等於總時長減去休息時間,再除以 60 即可換算成小時。
$$ \text{Paid Hours} = \frac{\big[(\text{Out}-\text{In}+1440)\bmod 1440\big] - B}{60} $$ $$ \text{where}\quad \left\{ \begin{aligned} \text{In} &= 60\cdot\text{In Hour} + \text{In Min} \\ \text{Out} &= 60\cdot\text{Out Hour} + \text{Out Min} \\ B &= \text{Break (min)} \end{aligned} \right. $$
實例試算
以一個從 22:00(晚上 10 點)到 06:30(清晨 6:30)、含 30 分鐘休息的班別為例:上班 = 1320、下班 = 390。總時長 = \((390 - 1320 + 1440) \bmod 1440 = 510\) 分鐘 = 8.5 小時。可計薪分鐘數 = \(510 - 30 = 480\) 分鐘 = 8.0 小時可計薪工時。
$$ \text{Paid Hours} = \frac{\big[(390-1320+1440)\bmod 1440\big] - 30}{60} = \frac{510 - 30}{60} = 8.0 $$
常見問題
能處理超過 24 小時的班別嗎? 不行——本工具假設下班時間在上班後的一天之內,這已涵蓋一般的工作班別。
如果上班與下班時間相同呢? 總時長會視為 0 分鐘(而非 24 小時)。
休息時間算薪資嗎? 休息時間視為無薪,會從可計薪工時中扣除;但「總時長」那一列不會扣除休息時間。