Finance

Time card calculator

Settings
Reset
Share
Save
Embed
Report a bug

Share calculator

Add our free calculator to your website

Source

Please enter a valid URL. Only HTTPS URLs are supported.

Styling

Input border focus color, switchbox checked color, select item hover color etc.

Advanced

Please agree to the Terms of Use.

Preview

Save calculator

Calculator Settings

Please enter a value within the allowed range.

Please enter a value within the allowed range.

Please enter a value within the allowed range.

Please enter a value within the allowed range.

Share calculator

What is a time card calculator?

A time card calculator turns a week of clock-in and clock-out times into a single, reliable total. You enter a start time, an end time, and any unpaid break for each of the seven days, and the calculator works out the hours for every day, adds them into a weekly total, separates the regular hours from overtime, and — if you enter an hourly rate — estimates the gross pay for the week.

It replaces the error-prone arithmetic of a paper timesheet: converting “9:00 to 5:00 with a 30-minute lunch” into 7.5 hours, doing that seven times, summing the result, and then applying an overtime rule. The tool does each of those steps for you and shows the numbers that actually matter on payday.

How does the time card calculator work?

For each day you supply three things:

  • Start time — when the shift begins, in 24-hour HH:mm form.
  • End time — when the shift ends. If the end is earlier than the start, the calculator treats it as an overnight shift and rolls the clock over to the next day.
  • Unpaid break (minutes) — lunch or any other unpaid time to subtract.

Three settings control the pay side:

  • Hourly pay rate — what you earn per hour. Leave it blank if you only want the hours. There is no currency symbol; read the result in whatever currency you entered.
  • Overtime threshold (hours) — the weekly point above which hours count as overtime. It defaults to 40.
  • Overtime multiplier (×) — how much more overtime hours pay. It defaults to 1.5 (time-and-a-half).

The calculator finds each day’s worked minutes as (end − start) − break, clamps a day that would come out negative (or that has no times entered) to zero, and converts minutes to hours. Summing the seven days gives the weekly total. Everything up to the threshold is regular; anything above it is overtime.

Formulas

The hours worked on a single day, clamped so a day is never negative:

hday=max(0, (EndStart)Break60)h_{day} = \max\left(0,\ \frac{(\text{End} - \text{Start}) - \text{Break}}{60}\right)

where the times are measured in minutes since midnight. The weekly total is the sum over the seven days:

H=d=17hday,dH = \sum_{d=1}^{7} h_{day,\,d}

The total splits into regular and overtime hours around the threshold TT:

Hreg=min(H, T)Hot=max(HT, 0)H_{reg} = \min(H,\ T) \qquad H_{ot} = \max(H - T,\ 0)

Gross pay applies the hourly rate RR to the regular hours and the boosted rate to the overtime hours, where MM is the overtime multiplier:

Gross=Hreg×R+Hot×R×M\text{Gross} = H_{reg} \times R + H_{ot} \times R \times M

Worked examples

Example 1 — a standard 9-to-5 week

An employee works Monday to Friday, 09:00 to 17:00, with a 30-minute unpaid lunch each day, at a rate of 20 per hour.

  • Each day: (17:0009:00)30 min=48030=450(17{:}00 - 09{:}00) - 30\text{ min} = 480 - 30 = 450 minutes =7.5= 7.5 hours.
  • Weekly total: 7.5×5=37.57.5 \times 5 = 37.5 hours.
  • The threshold is 40, so all 37.5 hours are regular and overtime is 0.
  • Gross pay: 37.5×20=75037.5 \times 20 = 750.

Example 2 — a sixth day tips the week into overtime

The same employee also works Saturday, 09:00 to 17:00, with the same 30-minute break.

  • Weekly total: 7.5×6=457.5 \times 6 = 45 hours.
  • Split at 40: regular hours are min(45,40)=40\min(45, 40) = 40 and overtime hours are max(4540,0)=5\max(45 - 40, 0) = 5.
  • Gross pay: 40×20+5×20×1.5=800+150=95040 \times 20 + 5 \times 20 \times 1.5 = 800 + 150 = 950.

The five overtime hours earn 30 per hour instead of 20 — that is what the 1.5 multiplier means.

Practical notes

  • Use a 24-hour clock. Entering 17:00 rather than 5:00 PM removes any AM/PM ambiguity, which is the most common source of timesheet errors.
  • Overnight shifts are handled automatically. A shift from 22:00 to 06:00 is read as eight hours, not a negative span.
  • Breaks that exceed the shift clamp to zero. A day never contributes negative hours, so a mistaken long break simply shows as no time worked, not a deduction from another day.
  • The overtime rule is configurable. The default 40-hour threshold with a 1.5× multiplier reflects the most common weekly overtime convention, but you can change both to match daily overtime rules, union agreements, or local labour law.
  • This is an estimate of gross pay. It does not withhold income tax, Social Security, or other deductions — pair it with a paycheck calculator to see take-home pay.

FAQs

What counts as overtime here?

Any hours in the week above the overtime threshold. With the default 40-hour threshold, the 41st hour onward is overtime. Change the threshold if your rules differ — for example, some agreements count overtime on a daily rather than a weekly basis.

Do I have to fill in all seven days?

No. Days you leave blank contribute zero hours. Fill in only the days actually worked, and the weekly total adds up just those.

Why is there no currency symbol on the pay?

Because these tools serve a global audience and currency does not follow language. Enter your rate as a plain number and read the gross pay in the same currency — dollars, euros, pounds, or anything else.

How does it handle a shift that crosses midnight?

If the end time is earlier than the start time, the calculator assumes the shift ends the next day and adds 24 hours before subtracting. So 23:00 to 07:00 is counted as eight hours.

Is the result my take-home pay?

No. The gross pay is your earnings before any tax or deduction. To estimate what actually reaches your account, run the gross figure through a paycheck or income-tax calculator.

Report a bug

This field is required.