Time duration calculator — add and subtract hours and minutes
Add or subtract HH:MM:SS durations, total a timesheet of entries into hours and decimal hours, and convert any duration between time units.
- Runs in your browser
- Nothing you enter is sent
- Free, no account
2:30:00 · 2 hours, 30 minutes
1:45:30 · 1 hour, 45 minutes, 30 seconds
4 hours, 15 minutes, 30 seconds
2:30:00 + 1:45:30 = 4:15:30
Three ways to work with durations
- Add / subtract — combine two durations, for example a 2:30 drive plus a 1:45 stopover, or subtract a break from a shift.
- Sum a list — paste a week of timesheet entries and get the total in both HH:MM:SS and decimal hours.
- Convert units — express one duration in hours, minutes, seconds, days and weeks at once.
Input formats that work
| You type | It means |
|---|---|
| 7:30 | 7 hours 30 minutes |
| 7:30:45 | 7 hours 30 minutes 45 seconds |
| 90 | 90 minutes — a bare number is read as minutes |
| 1h 30m | 1 hour 30 minutes |
| 1.5h | 1 hour 30 minutes |
| 2d 4h | 2 days 4 hours |
| 09:15-17:45 | 8 hours 30 minutes — a clock range |
| 22:00-06:00 | 8 hours — ranges that cross midnight are handled |
| -0:30 | Minus 30 minutes — deduct an unpaid break |
| Mon: 08:00-16:00 | 8 hours — a label before a colon is ignored |
Decimal hours versus HH:MM
Payroll systems, invoices and project trackers nearly always want decimal hours, while clocks and rosters use hours and minutes. Confusing the two is a classic and expensive mistake: 7:15 is 7.25 hours, not 7.15. Every total on this page is shown in both forms.
| Minutes | Decimal | Minutes | Decimal |
|---|---|---|---|
| 5 | 0.083 | 35 | 0.583 |
| 10 | 0.167 | 40 | 0.667 |
| 15 | 0.25 | 45 | 0.75 |
| 20 | 0.333 | 50 | 0.833 |
| 25 | 0.417 | 55 | 0.917 |
| 30 | 0.5 | 60 | 1.0 |
To convert by hand, divide the minutes by 60. To go back, multiply the decimal part by 60: 6.4 hours is 6 hours and 0.4 × 60 = 24 minutes.
Totalling a timesheet
Paste one entry per line. Mix ranges, plain durations and labelled lines freely — each line is parsed on its
own, and any line that cannot be read is listed separately instead of silently becoming zero. Use a negative
entry such as -0:30 to remove an unpaid break, and add a comment after a hash if you want notes
in the same block.
Totals keep accumulating past 24 hours rather than wrapping, so a full week shows as 42:15 rather than 18:15. That is what makes this different from adding times in a spreadsheet, where you have to remember the square-bracket format to stop the total resetting at midnight.
Rounding rules for billing
Many contracts round each entry before totalling. The three common conventions are:
- Nearest 6 minutes (0.1 hour) — standard in legal billing.
- Nearest 15 minutes (0.25 hour) — common in trades and consulting.
- Nearest minute — increasingly the default for software-tracked time.
Round each entry first and then sum, or sum first and then round — the two give different answers, and whichever your contract specifies is the one to use. This calculator sums exactly and leaves the rounding decision to you.
Negative results
Subtracting a longer duration produces a negative total, shown with a leading minus rather than wrapping around to a positive number. That is what you want for flexitime balances, budget overruns and "hours remaining" tracking, where the sign carries the meaning.
Questions
What input formats are accepted?
HH:MM, HH:MM:SS, plain minutes, and shorthand like "1h 30m" or "90m". Each line of the timesheet tab can also be a clock range such as "09:15-17:45".
What are decimal hours and why do I need them?
Decimal hours express minutes as a fraction — 7:30 becomes 7.5 — which is what payroll systems and invoices normally expect. Every total is shown in both forms.
Can a result be negative?
Yes. Subtracting a longer duration gives a negative total, shown with a leading minus rather than wrapping around, which is what you want when tracking flexitime balances.
Does it handle durations longer than 24 hours?
Yes — totals keep accumulating past 24 hours instead of resetting, so a 47:30 weekly total displays exactly as that.