Time Card Calculator
A weekly timesheet that adds up your hours honestly. Type the start and end times for each day, the unpaid break in minutes, and it gives you decimal hours per day and a total for the week. Add an hourly rate and it works out the pay too. Overnight shifts are handled, bad input on one row does not break the others.
Explain like I'm 5 (what even is this calculator?)
You write down what time you started, what time you finished, and how long you took for lunch. The calculator does the take-away for you and tells you how many hours you worked. Do that for every day, and at the bottom it adds the whole week up.
Your week
Browser-only. Times, breaks and rate stay on your device. Nothing is uploaded.
Fill in your hours, then press Calculate.
Week summary
- Total hours worked–
- Total pay–
Prove it
Press Calculate, and the working for each row appears here.
Per row: convert HH:MM to minutes since midnight for both start and end. If end ≤ start, add 1440 to the end (next-day rollover for overnight shifts). Net minutes = end − start − unpaid break. Hours = net minutes ÷ 60, rounded to two decimal places. If net is negative (the break is longer than the shift), the row is flagged invalid and skipped from the total. Empty rows are skipped silently. Total pay = total hours × hourly rate, rounded to two decimal places.
Useful? Save this calculator: press Ctrl + D to bookmark it.
What this calculator is doing
A time card is meant to be boring: when you started, when you finished, what came off for lunch. The maths is simple, but the small mistakes are easy to make and annoying to spot. Two minutes here, fifteen minutes there, and by the end of the week your timesheet does not match the hours you actually worked. This page does the addition for you, in your browser, with no uploads.
Each row is independent. You enter a start time, an end time, and the minutes you took for unpaid breaks. The calculator turns each time into minutes since midnight, subtracts to get the gross shift length, takes the break off, and divides by 60 to give decimal hours. The total at the bottom is the week's hours, and if you provided an hourly rate it also gives you the pay.
Overnight shifts and why end ≤ start rolls over
If you finish at 06:00 after starting at 22:00, the gap is eight hours, not minus sixteen. The calculator notices that the end time is on or before the start time and treats the end as the next day. The same rule covers a 24-hour shift, where start and end are identical. There is no separate toggle for it, because there does not need to be: if you type the times you actually worked, the maths is right.
The one quirk worth flagging: if you genuinely worked a zero-minute shift (start equals end on the same day), the calculator will read it as 24 hours. Do not enter zero shifts. Use an empty row instead, which is skipped from the total.
Decimal hours, not hours and minutes
Payroll software, freelance invoices, and most employment contracts work in decimal hours. 7.5 hours is much easier to multiply by an hourly rate than 7 hours 30 minutes, and easier to add up across a week. The calculator follows that convention. If you want the underlying minutes for a row, open the Prove it panel after calculating, which shows the gross minutes, the break, and the net minutes alongside the decimal value.
Common mistakes
Forgetting to subtract the lunch break is the classic. The break column is for unpaid time only: if your contract pays you through tea breaks, leave those out, because the time still counts as paid. Lunch, the school run, a doctor's appointment in the middle of the day, anything you are not being paid for, goes in.
The other common mistake is rounding too aggressively in your head. If you started at 09:07 and finished at 17:23, type those exact times. Rounding to 09:00 and 17:30 looks tidy and quietly costs you money over a year. Decimal hours give you precise totals; let the calculator do the rounding at the end.
Edge cases the calculator handles
An empty row is skipped without comment, which is what makes Mon to Fri prefilled and weekend rows blank work cleanly. A row with bad input (mistyped time, garbled break) shows a dash for that row and is left out of the total, so a typo on Wednesday does not invalidate Monday. A break that is longer than the shift is rejected with a clear message, because that almost always means a typo (5-hour break on a 4-hour shift), not a genuine answer of negative hours.
Related calculators
Hours are one number. These turn them into money and shape.
Frequently asked questions
How does it handle overnight shifts?
If the end time is on or before the start time, the calculator treats the end as the next day. So 22:00 to 06:00 is read as eight hours, not minus sixteen. There is no separate option for it. If you typed the start and end the way you actually worked them, the maths works.
Why are my hours showing as a decimal rather than hours and minutes?
Decimal hours are the format payroll software, freelance invoices, and most contracts use. 7.5 hours is easier to multiply by an hourly rate than 7 hours 30 minutes, and easier to add up across a week. If you need the minute view, the working in the Prove it panel shows the gross minutes, the break, and the net minutes for each row.
Should I include unpaid breaks?
Yes, in the unpaid break column. Lunch, the school run, the half-hour you popped out for a parcel, anything you are not being paid for. Paid breaks (a tea round, a short comfort break that your contract pays through) do not go in this column, because the time still counts towards your paid hours.
Can I use it for a fortnight or a month?
It is built around a week, but the maths is per row, so you can press Add row as many times as you like and label them however suits you. For longer periods, the totals stay accurate. The pay total assumes a single hourly rate; if your rate changed mid-period, calculate each rate range separately and add the results.
Does the calculator send my times anywhere?
No. It runs entirely in your browser. Times, breaks and rate are not uploaded, not stored, and not shared. Close the tab and they are gone.