Time Calculator for HR Teams

Shifts, breaks, overtime, and payroll decimals - the whole timesheet workflow in plain typed expressions.

Output format:
Show the duration as decimal hours for payroll (7h 30m → 7.5h)Convert to work hours (1w = 5d, 1d = 8h)
Current date & timeWork Day (8h)
YearMonthWeekDay
HourMinuteSecondTime separator (HH:MM:SS)
AMPMDate separator (MM/DD/YYYY)
Open the full app - it's free

HR time math has two constant traps: breaks that have to come off every shift, and the hours-to-decimal conversion payroll requires (7h 45m is 7.75, never 7.45). TCalc handles both - durations are real values and decimal output is one tap away.

The HR layout below has one-tap keys for standard shifts and breaks, so a full week of clock-ins takes seconds to total.

Why payroll arithmetic goes wrong on an ordinary calculator

Time is base-60 and money is base-10, and payroll sits exactly on the seam. Typing 1.45 for one hour forty-five minutes and adding 0.30 for a half-hour break produces 1.75, which is one hour forty-five minutes only by coincidence of notation and is wrong the moment you carry past sixty. The error is small per entry and systematic across a month, which is the worst combination: too small to notice, too consistent to cancel out.

Working in real time values removes the class of error entirely. A shift is a subtraction between two clock times with the unpaid break taken off, and it produces a duration - not a decimal that happens to look like one.

WD
Work day - 8 hours by convention, the unit leave balances are usually quoted in.
FTE
Full-time equivalent - 40 hours per week in most schemes.
PTE
Part-time equivalent - commonly 20 hours per week.
Decimal hour
Minutes divided by 60. 7h 45m is 7.75, never 7.45.
17:30 - 09:00 - 30m=8h

The core calculation: clock-out, minus clock-in, minus the unpaid break.

8h + 7h 30m + 8h 15m + 8h + 7h 45m=39h 30m

A working week from five daily figures - thirty minutes short of a 40-hour FTE.

7h 45m=7.75h

The same duration in decimal hours, ready for the payroll column.

Overtime, leave balances and the calendar-to-work-time trap

Overtime is a subtraction against a contractual baseline, which is straightforward once the baseline is expressed in the same units as the actual. Leave balances are more interesting, because they are usually held in work days while the underlying entitlement is in hours: 25 work days of annual leave is 200 hours, and a half-day is four. Converting between the two by hand is where balances drift.

The subtler trap is treating calendar time as work time. One week is not 168 working hours and one day is not 24; for scheduling purposes a week is five work days and a day is eight work hours, so a calendar week converts to 40 hours. A conversion that knows this is the difference between a schedule that holds and one that quietly over-commits people.

45h - 40h=5h

Weekly overtime against a 40-hour full-time baseline.

25WD - 5WD - 3WD=17WD

Annual leave balance after two absences - 136 hours remaining.

2080h - 160h=1920h

Annual hours less twenty days of leave.

20h * 4=80h

Monthly hours for a part-time contract at 20 hours a week.

Shifts that cross midnight

A night shift breaks naive subtraction: 06:00 minus 22:00 is negative eight, which is obviously not the answer. There are two correct approaches and both are one expression. You can split the shift at midnight and add the halves, or you can add the shift length to the start time and read off the finish, which also tells you the calendar day it lands on.

The second form is the more useful one in rostering, because the question is usually "when does this person finish" rather than "how long is this shift". Getting a next-day answer rather than a wrapped-around one prevents the classic error of rostering someone back on before their rest period is complete.

2h + 6h=8h

A 22:00-06:00 shift split at midnight: two hours before, six after.

22:00 + 8h=6:00 AM

The same shift as a finish time, correctly landing on the following day.

Real Examples

17:30 - 09:00 - 30m=8h

One shift: clock-out minus clock-in minus unpaid lunch.

8h 12m + 7h 48m + 8h 30m + 6h 45m + 8h=39.25h

A whole week totalled and shown as payroll-ready decimal.

42h 30m - 40h=2h 30m

Overtime: actual week minus the standard 40 hours.

17:00 - 08:00 - 45m=8h 15m

Different break length? Just change the number.

Answers as you type

Quick calc
=

Both widgets live on the widgets page.

Frequently Asked Questions

How do I calculate an employee's hours worked?

Clock-out minus clock-in minus unpaid breaks: 17:30 − 09:00 − 30m = 8h. TCalc evaluates the whole expression at once, per day or per week.

How do I convert worked hours to decimal for payroll?

Minutes divided by 60: 39h 15m = 39.25 hours. In TCalc you switch the output format to hours and any total displays as decimal - no conversion tables.

How do I calculate overtime?

Subtract the standard week from the actual total: 42h 30m − 40h = 2h 30m of overtime. With Pro you can save your standard week as a one-tap custom button.