Hours calculator — time between two times
Work out the hours between any start and end times, add as many entries as you like, and total them in h:mm and decimal.
- Runs in your browser
- Nothing you enter is sent
- Free, no account
Total
3:30
Total
4:15
Regular hours
7.75
7:45
Overtime hours
0.00
none this period
Average entry
3:53
3.88 hours
Minutes total
465
useful for invoicing by the minute
Regular pay
$0.00
Overtime pay
$0.00
Gross pay
$0.00
| Entry | In | Out | Hours | Decimal |
|---|---|---|---|---|
| Morning session | 8:30 AM | 12:00 PM | 3:30 | 3.50 |
| Afternoon session | 1:00 PM | 5:15 PM | 4:15 | 4.25 |
Formula and working
One shift
hours = (out − in) − unpaid break Morning session: 12:00 PM − 8:30 AM − 0 min = 3:30 Afternoon session: 5:15 PM − 1:00 PM − 0 min = 4:15 = 7:45 in total
Decimal hours
decimal = hours + minutes ÷ 60 7:45 → 7 + 45 ÷ 60 = 7.75
Overtime split
overtime = daily hours above the daily limit + weekly hours above the weekly limit daily overtime off weekly overtime off = 7.75 regular + 0.00 overtime
Gross pay
pay = regular × rate + overtime × rate × multiplier = 7.75 × 0 + 0.00 × 0 × 1.5 = $0.00 + $0.00 = $0.00
Hours already counted as daily overtime are excluded before the weekly threshold is applied, so no hour is ever paid at the overtime rate twice.
Assumptions
- Break minutes are treated as unpaid and deducted from the shift. Paid breaks should be left at zero.
- An end time at or before the start time is read as an overnight shift and 24 hours are added — a 22:00 to 06:00 shift totals eight hours.
- Daily overtime is applied per entry; weekly overtime is applied to what is left after that, so no hour is counted twice. US federal law (FLSA) requires only the weekly rule; California adds a daily one; most of Europe uses contractual rules instead.
- Payroll rounding, where enabled, is applied to each entry before totalling, which is how time-clock systems behave. Rounding must be neutral to be lawful in the US — always to the nearest increment, never always down.
- Pay is gross. Income tax, national insurance, pension and other deductions are not applied.
- Nothing you enter is uploaded. Saving is off by default and writes only to this browser.
Subtracting times is harder than it looks
Clock time is base sixty wearing a decimal disguise, and that is why people get it wrong in their heads. From 09:15 to 17:40 is not 17.40 − 9.15 = 8.25. It is eight hours and twenty-five minutes, which as a decimal is 8.42.
The reliable manual method is to convert both times to minutes since midnight, subtract, then convert back: 17:40 is 1,060 minutes, 09:15 is 555, the difference is 505 minutes, which is 8 hours 25. That is exactly what this page does for every row.
Add as many periods as you need
Most "hours between two times" pages handle one pair and stop. Real time-keeping is rarely one pair. A day split around a client meeting, a project touched three times across a week, a freelance invoice covering six sessions — each gets its own labelled row here, and the totals accumulate across all of them.
Give each row a meaningful label. When the total is questioned three weeks later, the labels are the part that saves you.
Type times however you like
| You type | Understood as |
|---|---|
| 9 | 09:00 |
| 930 | 09:30 |
| 9:30 | 09:30 |
| 9 30 | 09:30 |
| 9:30 pm | 21:30 |
| 5p | 17:00 |
| 1745 | 17:45 |
| 12am | 00:00 |
Breaks and overnight periods
Each row has an unpaid break in minutes, deducted from that row before it is totalled. If the end time is at or before the start time the period is treated as crossing midnight, so 23:00 to 02:30 is three and a half hours rather than a negative number.
h:mm and decimal, side by side
Two formats, two audiences. h:mm is how a clock and a rota describe time.
Decimal hours — hours plus minutes divided by sixty — is what payroll systems,
invoicing software and spreadsheets need, because you cannot multiply 8:25 by an hourly rate.
Both appear on every row and on the total, along with the figure in minutes, which is what you want when billing in six-minute or fifteen-minute units.
Common uses
- Freelance invoicing. Add a row per session, set your rate, and the gross figure appears with the hours.
- Checking a payslip. Reconstruct the week from your own notes and compare the decimal total against what you were paid for.
- Project time. Total the hours spent on one piece of work across several days.
- Study and practice logs. Anything that needs "how many hours did that actually take?" answered honestly.
If you need a full Monday-to-Sunday grid with daily and weekly overtime rules, the time card calculator is the same engine laid out as a week.
Rounding, if your client or employer uses it
Rounding to the nearest quarter or tenth of an hour is applied per entry, before the total, and always to the nearest increment in both directions. Legal billing usually works in tenths (six minutes); US payroll usually works in quarters. Leave it on "exact" and nothing is rounded at all.
Nothing leaves the tab
Your working hours are personal data — they describe where you were and when. This page runs entirely in your browser with no server behind it, saves nothing unless you switch saving on, and works with the network disconnected. The CSV, Excel and PDF exports are generated locally too.
Questions
How many hours is 9:15 to 17:40?
Eight hours and twenty-five minutes, or 8.42 in decimal hours. Enter the two times above and both formats appear together, along with the total in minutes.
Can I add up several sessions?
Yes — that is the point of this page rather than a single-shot subtraction. Add a row per session, give each one a label, and the totals accumulate across all of them.
Does it subtract lunch breaks?
Each entry has an unpaid break field in minutes, which is deducted from that entry before it is added to the total. Paid breaks should be left at zero.
What is the difference between 8:30 and 8.30?
Eight hours thirty minutes versus eight and three-tenths of an hour (8 hours 18 minutes) — twelve minutes apart. Payroll wants the decimal form; the clock shows the other. Both are displayed for every entry here.