Hours Worked Calculator
Start, end, break — decimal hours for payroll, h:mm for humans.
How this is calculated
hours = (end − start − break) ÷ 60 · end < start ⇒ shift crossed midnight
Worked example: 08:30–17:00 with a 45-minute break → 510 minutes − 45 = 465 minutes = 7.75 hours (7h 45m). Note the payroll trap: 7h 45m is 7.75 decimal, never 7.45 — the panel shows both so the right number travels. Night shifts just work: 22:00–06:00 reads as 8 hours.
Getting the arithmetic right across midnight and across breaks
A shift from 09:00 to 17:30 with a 30-minute unpaid break is eight hours, and almost everyone can do that one. Two things make it harder. A shift crossing midnight — 22:00 to 06:00 — cannot be subtracted directly, because the end time is numerically smaller than the start; you add 24 hours to the end before subtracting. And decimalising the result is where errors creep in: 8 hours 30 minutes is 8.5 hours, but 8 hours 20 minutes is 8.33, not 8.2. Minutes divide by 60, not by 100.
That decimal conversion is the single most common payroll error in manually kept timesheets, and it is always in the same direction — undercounting the awkward fractions. Over a month of shifts ending at :20 and :40 it becomes real money.
Which breaks are paid, and what the law requires
Whether a break is deducted is a matter of contract and jurisdiction, not arithmetic. In South Africa the Basic Conditions of Employment Act requires a meal interval of at least one continuous hour after five hours of work, which may be reduced to 30 minutes by written agreement, and it is ordinarily unpaid. In the UK, workers over 18 are entitled to an uninterrupted 20-minute rest break in a shift over six hours, also ordinarily unpaid. In the US, federal law requires no meal break at all, though many states do, and short breaks of 5–20 minutes generally must be paid.
The pattern across most systems is that short rest breaks are paid and longer meal breaks are not, and that a break during which you cannot actually leave your post is usually paid regardless of what it is called. If your timesheet and your payslip disagree, the deducted break is the first place to look.
Overtime, and why the threshold matters more than the rate
Overtime rules turn on a threshold — hours per week, hours per day, or both — and the threshold varies more than the premium does. Many systems use 40 hours a week; South Africa's ordinary limit is 45. Some jurisdictions add daily thresholds, so a long day can attract overtime even in a short week. A few define it by roster pattern rather than clock hours.
Because of this, total hours for a period is only the input to a pay calculation, not the calculation itself. Work out your hours here, then apply your own contract's threshold and premium. Where a week straddles two pay periods, check which period each shift falls into before comparing against a weekly threshold at all.
Keeping a record that survives a dispute
Timesheet disagreements are usually decided by whoever has the better contemporaneous record. That means writing down start, end and break times on the day rather than reconstructing a fortnight later, keeping your own copy independent of the employer's system, and noting anything unusual — a shift extended by request, a break you were unable to take — at the time. A note made on the day carries far more weight than an accurate memory produced afterwards.
Frequently asked questions
How are the hours calculated?
End time minus start time, minus the unpaid break, expressed both as decimal hours (what payroll multiplies) and hours:minutes (what humans read). 08:30 to 17:00 with a 45-minute break is 7.75 hours — 7h 45m.
What about overnight shifts?
If the end time is earlier than the start, the calculator assumes the shift crossed midnight: 22:00 to 06:00 is 8 hours. No date-picking needed for a normal night shift.
Why decimal hours for pay?
Because pay is rate × hours, and 7h 45m is 7.75 in arithmetic. The common mistake is typing 7.45 into payroll — the panel shows both forms so the right one gets copied.
How do I total a whole week?
Run each day and add the decimal results (or multiply a fixed shift by its days). A weekly-timesheet version with per-day rows is on the roadmap; today the page is deliberately the fast single-shift answer.