Free tools
HoursCalculatorNZ timesheets · decimal + h:mm
Free · no signup · saved in your browser

Billable hours, straight to an invoice

Log the week, set your rate, add GST if you are registered — then push every day across as an invoice line item without retyping a single number.

Decimal and h:mm Handles overnight shifts One click to an invoice

SOURCE·Arithmetic only — no external rate·REVIEWED JUL 2026

DayStartFinishBreak (min)Hours
Monday
7.507:30 h
Tuesday
7.507:30 h
Wednesday
7.507:30 h
Thursday
7.507:30 h
Friday
7.507:30 h
Saturday
Sunday
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Your week on one 24-hour axis. A shift that crosses midnight is drawn as the two parts it actually occupies. at work unpaid break — deducted from the total; this calculator records how long it was, not what time it was taken
Total hours
37.50
Hours & minutes
37:30
Days worked
5

SOURCE·Arithmetic only — no external rate·Unpaid breaks deducted, midnight rollover applied·REVIEWED JUL 2026

What contractors get wrong about billable hours

Employees count the hours they were at work. Contractors have to count the hours they can defend, and the two are rarely the same number.

Round in consistent increments. Six-minute units (0.1 of an hour) are the professional-services convention; fifteen-minute units are normal in the trades. Pick one and use it everywhere — inconsistent rounding is what makes a client start checking your maths.

Describe the work, not the duration. "Consulting — Tuesday (09:00–17:00)" survives a review. "Hours: 8" invites a phone call. When you send this sheet to the invoice generator, each day carries its own description across for exactly that reason.

Bill promptly. Hours logged this week and invoiced this week get paid roughly a month sooner than hours invoiced at month end — and the detail is still fresh enough to answer any question about them.

Decimal hours or h:mm — the answer in both, and the gap between them

Time is base 60. Money is base 10. Every payroll error you have ever seen lives in the gap between those two facts.

If you work 8:45am to 5:15pm you have done 8 hours 30 minutes. Written down carelessly as 8.30 and multiplied by an hourly rate, that pays you for 8.30 hours instead of 8.5 — a loss of 12 minutes a day. Over a 46-week year that is close to a full working week of unpaid time, and it happens quietly because 8.30 looks right.

The fix is to convert once, properly: minutes ÷ 60. Thirty minutes is 0.5, not 0.30. The calculator above shows both formats for every row so you can copy whichever your payroll system wants and never do the conversion in your head.

How this is worked out

  1. A day is measured in whole minutes: finish minus start. Nothing is rounded at this stage.
  2. If the finish time is earlier than the start time, the shift is read as crossing midnight and a full day (1,440 minutes) is added — 22:00 to 06:00 is 8 hours, not minus 16. The row is labelled overnight so the assumption is visible. A finish time equal to the start is read as an empty entry, not a 24-hour shift; split a genuine 24-hour shift across two rows.
  3. The unpaid break, in minutes, is subtracted from that day. Paid rest breaks are entered as zero, because the hours that belong on a timesheet are the hours you are paid for. A break longer than the shift floors the day at zero rather than going negative, and the row is flagged.
  4. The week is the sum of the days in minutes, converted once at the end. Seven days rounded individually drift from the week's total; minutes summed and converted once cannot.
  5. Decimal hours are minutes ÷ 60 to two places; h:mm is the same minutes shown as whole hours and a remainder. Pay, where a rate is entered, is applied to the decimal total, and GST is added on top of that.
day    = (finish − start) + (finish < start ? 1440 : 0) − unpaid break   [minutes]
week   = Σ day                                                          [minutes]
decimal = week ÷ 60   (2 dp)          h:mm = ⌊week ÷ 60⌋ : (week mod 60)

The break and holiday rules these conventions follow →

Breaks, overnight shifts and the bits that trip people up

Unpaid breaks come off the total

Enter the break in minutes and it is deducted from that day. If your break is paid, enter zero — the number that belongs on a timesheet is the number of hours you are being paid for, not the hours you were on site.

In New Zealand, rest and meal breaks are set by law based on how long the work period is: a 10-minute paid rest break after two hours, and an unpaid 30-minute meal break after four. A standard eight-hour day therefore usually has 30 unpaid minutes in it, which is why the calculator defaults to 30.

Shifts that cross midnight

Enter 22:00 and 06:00 and the calculator adds the day rollover for you rather than returning a negative number. The row is labelled overnight so the assumption is visible — if you actually meant a 16-hour day, split it into two rows.

Billable hours are not worked hours

If you are a contractor rather than an employee, the number that matters is what you can defensibly put on an invoice. Round to sensible increments — six-minute (0.1 hour) units are the professional-services standard, fifteen-minute units are common for trades — and record what the time was spent on while you still remember. A line item that says "Consulting — Tuesday (09:00–17:00)" gets queried far less often than one that says "hours".

Minutes to decimal hours, in full

The conversion payroll systems want, for the awkward increments people get wrong. Fifteen is 0.25 and thirty is 0.5; it is the twenties and forties that cost money.

Minutes to decimal hours · minutes ÷ 60, two decimal places
MinDecimalMinDecimalMinDecimal
30.05200.33450.75
50.08240.40480.80
60.10250.42500.83
90.15300.50540.90
100.17350.58550.92
120.20360.60570.95
150.25400.67580.97
180.30420.70590.98

Hours calculator FAQ

How do I calculate hours worked between two times?
Subtract the start time from the finish time, then take off any unpaid break. The trap is doing it in hours and minutes: 8:45am to 5:15pm is not 9.30 hours, it is 8 hours 30 minutes, or 8.5 in decimal. Minutes are sixtieths, not hundredths, which is why the calculator shows both formats side by side.
How do I convert minutes to decimal hours?
Divide the minutes by 60. Fifteen minutes is 0.25, thirty is 0.5, forty-five is 0.75. The awkward ones are the in-betweens — 20 minutes is 0.33 and 40 minutes is 0.67 — which is where manual timesheets usually go wrong in the employer's favour.
Does it handle night shifts that cross midnight?
Yes. If the finish time is earlier than the start time, the calculator assumes the shift ran overnight and adds the day rollover automatically. A shift from 22:00 to 06:00 with a 30 minute break comes out at 7.5 hours, and the row is marked overnight so you can see the assumption it made.
Should I take the break off before or after?
Take unpaid breaks off the total. Enter the break in minutes and it is deducted from that day's worked hours. If your break is paid, enter zero — the hours you are paid for are the hours that go on the timesheet.
How many hours is full time in New Zealand?
There is no legal definition, but full time is generally treated as 30 or more hours a week, and 40 hours is the common standard. Employment New Zealand's guidance on maximum hours sets 40 hours a week as the default unless the employment agreement says otherwise, excluding overtime.
Can I turn my hours into an invoice?
Yes, in one click. Enter your hourly rate, then use 'Send to invoice generator' — each worked day becomes a line item with the hours as the quantity and your rate as the unit price, and GST is applied if you chose a rate. The week's total and your rate travel as parameters in the link so the invoice can pre-fill; the per-day detail travels in the link's fragment, which browsers never send to a server. There is no upload and no account.
Is my timesheet saved?
In your own browser only. Your week, rate and label stay in local storage on your device so the sheet is still there next time you open it. There is no account and nothing is sent to a server.

Where these figures come from

Every number this tool uses, with the official source and the date it applies from. If a figure here is out of date, the source link is the one to trust.