# Hours calculator: hours between two times and weekly timesheet

> Calculate work hours, breaks and weekly timesheets. Use dates and a time zone for overnight shifts across daylight-saving changes and repeated hours.

Interactive version: https://www.calcopenly.com/datetime/hours-calculator
Subject: Date and time calculators

The start time is subtracted from the end time; when the end is at or before the start, the shift is taken to finish the next day, so 24 hours are added first. The unpaid break is then taken off, and the result is shown in decimal hours (seconds ÷ 3,600) and as hours and minutes. The weekly timesheet adds one shift per line and splits the total into regular hours and overtime above a weekly threshold, 40 hours by default, the US Fair Labor Standards Act figure.

A night shift from 22:00 to 06:15 with a 45-minute break is 7.5 hours. The default week, four days of 09:00 to 17:30 and a Friday finishing at 17:00, each with a 30-minute break, comes to 39.5 hours.

One shift and Weekly timesheet use clock time. Choose Dates & time zone to measure actual elapsed time across midnight, multiple days or a daylight-saving change. A repeated clock time has two possible instants: choose its first or second occurrence. A skipped time is rejected so you can correct the recorded punch.

## How to calculate hours worked by hand

1. Write both times on the 24-hour clock: 5:15 pm is 17:15, and 12:00 am (midnight) is 00:00.
2. Subtract the minutes. If the end minutes are smaller, borrow an hour: add 60 to the end minutes and take 1 from the end hour.
3. Subtract the hours.
4. Take off the unpaid break.
5. Divide the leftover minutes by 60 to get decimal hours.

For a shift from 08:40 to 17:15 with a 45-minute unpaid lunch: 15 − 40 is negative, so borrow an hour and work out 75 − 40 = 35 minutes; then 16 − 8 = 8 hours. The shift spans 8 hours 35 minutes, and less the break it is 7 hours 50 minutes. As a decimal, 50 ÷ 60 = 0.8333, so the time worked is 7.83 hours.

The last step is where pay goes wrong. At $18.50 an hour, 7.8333 hours earns $144.92. Reading 7:50 as 7.50 hours pays $138.75, which is $6.17 short for one day.

### Shifts that cross midnight

When the end time is earlier than the start, the shift finishes the next day, so add 24 hours to the end time before subtracting. A shift from 21:30 to 05:45 with a 30-minute break is (05:45 + 24:00) − 21:30 = 8 hours 15 minutes, less 30 minutes, which is 7 hours 45 minutes or 7.75 hours. The calculator does this itself when you enter the clock times as they appear.

In One shift mode, matching start and end times mean 24 hours. For a shift lasting more than one day, or for matching clock times that actually refer to the same instant, choose **Dates & time zone** and enter both dates explicitly.

## Hours worked across daylight-saving changes

Choose **Dates & time zone** when a shift crosses a clock change. Enter the local date and time of each punch, the IANA zone where they were recorded, and the actual duration of the unpaid break. Use a name such as `America/New_York` or `Europe/London`; a fixed abbreviation such as EST does not describe a city's changing seasonal offset. Both endpoints use the same zone. For travel between different zones, first convert both endpoints to UTC with the [time zone converter](/datetime/time-zone-converter), then use UTC here.

The calculator resolves each local reading to an instant in UTC and subtracts those instants. It shows the clock difference, the adjustment caused by offset changes, and elapsed time before the break. A positive adjustment means more time elapsed than the clocks alone suggest; a negative adjustment means less time elapsed. This works for a half-hour change as well as a one-hour change.

For New York in 2026, compare these two overnight shifts. Both schedules read 23:00 to 07:30, with a 30-minute unpaid break:

| Local dates | Clock difference | Actual elapsed time | Worked time after break |
| --- | --- | --- | --- |
| 7–8 March 2026 | 8 hours 30 minutes | 7 hours 30 minutes | 7 hours |
| 31 October–1 November 2026 | 8 hours 30 minutes | 9 hours 30 minutes | 9 hours |

These results match the [US Department of Labor's daylight-saving shift example](https://webapps.dol.gov/elaws/whd/flsa/hoursworked/screener11.asp). The displayed UTC endpoints let you check which instants were used. Breaks are elapsed durations: if a break itself spans a clock change, determine its actual duration before subtracting it.

### Repeated and skipped clock times

When clocks go back, a time may occur twice. In New York on 1 November 2026, the first 01:30 corresponds to 05:30 UTC and the second to 06:30 UTC. Selecting the first occurrence for the start and the second for the end gives one hour, even though the wall-clock readings match. Choose occurrences separately for each endpoint and check them against the original record. The calculator warns when either reading is ambiguous.

A forward change can remove a clock reading entirely. New York's 02:30 on 8 March 2026 never occurs, so the calculator reports an input error. It does not quietly substitute a different punch. This distinction between exact instants and ambiguous local readings is described in [TC39's time-zone documentation](https://tc39.es/proposal-temporal/docs/timezone.html).

Dates & time zone uses the rules available in your browser's time-zone database. Governments can change future rules, and older browsers can contain older data. It does not model leap seconds, payroll rounding, overtime eligibility or wage entitlements. The weekly timesheet remains a clock-based total; calculate affected shifts individually using dates before using their actual durations in a payroll record.

## Minutes to decimal hours

Payroll systems and many timesheets want hours as a decimal. Each minute is 1/60 of an hour, so divide the minutes by 60. The table rounds to two decimal places, the usual precision on a timesheet.

| Minutes | Hours | Minutes | Hours | Minutes | Hours |
|---|---|---|---|---|---|
| 1 | 0.02 | 21 | 0.35 | 41 | 0.68 |
| 2 | 0.03 | 22 | 0.37 | 42 | 0.70 |
| 3 | 0.05 | 23 | 0.38 | 43 | 0.72 |
| 4 | 0.07 | 24 | 0.40 | 44 | 0.73 |
| 5 | 0.08 | 25 | 0.42 | 45 | 0.75 |
| 6 | 0.10 | 26 | 0.43 | 46 | 0.77 |
| 7 | 0.12 | 27 | 0.45 | 47 | 0.78 |
| 8 | 0.13 | 28 | 0.47 | 48 | 0.80 |
| 9 | 0.15 | 29 | 0.48 | 49 | 0.82 |
| 10 | 0.17 | 30 | 0.50 | 50 | 0.83 |
| 11 | 0.18 | 31 | 0.52 | 51 | 0.85 |
| 12 | 0.20 | 32 | 0.53 | 52 | 0.87 |
| 13 | 0.22 | 33 | 0.55 | 53 | 0.88 |
| 14 | 0.23 | 34 | 0.57 | 54 | 0.90 |
| 15 | 0.25 | 35 | 0.58 | 55 | 0.92 |
| 16 | 0.27 | 36 | 0.60 | 56 | 0.93 |
| 17 | 0.28 | 37 | 0.62 | 57 | 0.95 |
| 18 | 0.30 | 38 | 0.63 | 58 | 0.97 |
| 19 | 0.32 | 39 | 0.65 | 59 | 0.98 |
| 20 | 0.33 | 40 | 0.67 | 60 | 1.00 |

Only multiples of 3 minutes come out exact at two decimals. The rest are rounded, and the rounding adds up: 7.83 hours at $18.50 is $144.86, six cents less than the exact 7 hours 50 minutes. The calculator sums shift durations before converting to decimal hours and rounds only the displayed figure, so add up minutes or seconds first and convert the total, not each day. To go the other way, multiply the decimal part by 60: 0.4 hours is 24 minutes.

## Breaks and clock rounding

Enter only unpaid time as the break. If a shift has a 30-minute lunch and two paid 10-minute rest breaks, the break is 30 minutes. For a split lunch, add the pieces together. Some US states set minimum meal breaks: [California Labor Code §512](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=512) requires a meal period of at least 30 minutes for a work period of more than 5 hours a day, which employer and employee can waive by mutual consent when the work day is no more than 6 hours.

Many time clocks round punches to the nearest 5 minutes, tenth of an hour (6 minutes) or quarter-hour. The US Department of Labor accepts that practice under [29 CFR 785.48(b)](https://www.ecfr.gov/current/title-29/section-785.48) only if it averages out so that, over time, employees are paid for all the time they actually work. The calculator doesn't round: enter the recorded times, or round them first if your employer's policy does and you want to match your payslip.

## Overtime under the FLSA

The US Fair Labor Standards Act requires employers to pay covered, non-exempt employees at least 1.5 times the regular rate for hours over 40 in a workweek ([29 CFR 778.107](https://www.ecfr.gov/current/title-29/section-778.107); [Fact Sheet #23](https://www.dol.gov/agencies/whd/fact-sheets/23-flsa-overtime-pay)). Two rules decide which hours count:

- **The workweek** is a fixed, regularly recurring period of 168 hours, seven consecutive 24-hour periods. It can start on any day and at any hour, so it need not run Monday to Sunday ([29 CFR 778.105](https://www.ecfr.gov/current/title-29/section-778.105)).
- **Each workweek stands alone.** Hours can't be averaged over two or more weeks, so 30 hours one week and 50 the next means 10 overtime hours, even though the fortnight averages 40 ([29 CFR 778.104](https://www.ecfr.gov/current/title-29/section-778.104)).

Five days of 08:00 to 17:30 with a 30-minute unpaid lunch make 9 hours a day and 45 hours a week. The timesheet splits that into 40 regular hours and 5 overtime hours. At $22 an hour, pay is 40 × $22 = $880 plus 5 × $33 = $165, a total of $1,045.

The FLSA counts only weekly hours, but some states also set daily overtime. Under [California Labor Code §510](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=510), work over 8 hours in a workday is paid at 1.5 times the regular rate and work over 12 hours at double, alongside the weekly 40-hour rule. Four days of 07:00 to 17:30 with a 30-minute lunch total 40 hours, so the timesheet shows no overtime; under California's daily rule, 2 hours of each 10-hour day are overtime, and at $22 an hour the week pays 32 × $22 + 8 × $33 = $968 instead of $880. Section 510 doesn't apply to an alternative workweek schedule adopted under §511 or under a collective bargaining agreement (§514). The calculator applies only a weekly threshold, so work out daily overtime line by line from the timesheet table.

## Reading the result

The calculator shows the same total two ways: decimal hours (7.75) for multiplying by a pay rate, and hours and minutes (7:45) for comparing with a clock. They are not interchangeable: 7:45 is 7.75 hours, not 7.45.

One shift and Weekly timesheet use clock readings; Dates & time zone measures actual elapsed time and reports any offset-change adjustment. To add several already-measured durations, including shifts checked for daylight saving, use the [time calculator](/datetime/time-duration-calculator). To turn an hourly rate into annual pay, use the [salary to hourly calculator](/finance/salary-to-hourly-calculator).

## Inputs

- **Calculate** (options: One shift, Weekly timesheet, Dates & time zone)
- **Start date**
- **Start time**
- **End date**
- **End time**: One shift assumes the next day when the end is at or before the start. Dates & time zone uses the exact dates you enter.
- **Time zone**: Use an IANA name such as America/New_York, Europe/London or Australia/Lord_Howe. Both punches use this zone.
- **If the start time repeats**: Only changes the result when the clocks move back and this time occurs twice. (options: First occurrence, Second occurrence)
- **If the end time repeats** (options: First occurrence, Second occurrence)
- **Unpaid break**: Minutes, or a form such as 1h 15m.
- **Shifts, one per line**: Label, start–end, then break minutes: “Tue 22:00-06:00 45”.
- **Overtime after**

## Results

- Hours worked (h) — main result
- Time worked
- Time worked
- Crosses midnight
- Regular hours (h)
- Overtime hours (h)
- Elapsed time before breaks
- Clock difference before breaks (h)
- Clock-change adjustment (h)
- Time zone used
- Start instant in UTC
- End instant in UTC

## Formula

$$
\text{hours worked} = \sum_i \frac{\text{elapsed seconds}_i - \text{unpaid break seconds}_i}{3600}
$$

## Worked examples

### Day shift with a half-hour break

- Calculate: One shift
- Start time: 09:00
- End time: 17:30
- Unpaid break: 30 min
- **Hours worked: 8 h**
- **Time worked: 8:00**
- **Crosses midnight: No**
- Checked against: 8.5 h − 0.5 h = 8 h by hand

### Overnight shift

- Calculate: One shift
- Start time: 22:00
- End time: 06:15
- Unpaid break: 45 min
- **Hours worked: 7.5 h**
- **Time worked: 7 h 30 min**
- **Crosses midnight: Yes**
- Checked against: 22:00 → 06:15 next day = 8 h 15 min; minus 45 min = 7 h 30 min = 27000 s, by hand

### Default week

- Calculate: Weekly timesheet
- Shifts, one per line: Mon 09:00-17:30 30 / Tue 09:00-17:30 30 / Wed 09:00-17:30 30 / Thu 09:00-17:30 30 / F…
- Overtime after: 40 hours a week
- **Hours worked: 39.5 h**
- **Regular hours: 39.5 h**
- **Overtime hours: 0 h**
- Checked against: 4 × (8.5 − 0.5) + (8 − 0.5) = 39.5 h by hand

### Week with a night shift and overtime

- Calculate: Weekly timesheet
- Shifts, one per line: Mon 07:00-19:00 60 / Tue 22:00-08:00 30 / Wed 08:00-18:00 45 / Thu 08:00-18:00 45 / F…
- Overtime after: 40 hours a week
- **Hours worked: 43 h**
- **Regular hours: 40 h**
- **Overtime hours: 3 h**
- Checked against: 11 + 9.5 + 9.25 + 9.25 + 4 = 43 h; 43 − 40 = 3 h overtime, by hand

### Spring-forward shift in New York

- Calculate: Dates & time zone
- Start date: 2026-03-07
- Start time: 23:00
- End date: 2026-03-08
- End time: 07:30
- Time zone: America/New_York
- If the start time repeats: First occurrence
- If the end time repeats: First occurrence
- Unpaid break: 30 min
- **Hours worked: 7 h**
- **Elapsed time before breaks: 7 h 30 min**
- **Clock difference before breaks: 8.5 h**
- **Clock-change adjustment: -1 h**
- **Start instant in UTC: 2026-03-08T04:00:00Z**
- **End instant in UTC: 2026-03-08T11:30:00Z**
- Checked against: US Department of Labor, FLSA Hours Worked Advisor: 23:00–07:30 with a 30-minute break gives 7 hours when clocks advance; UTC endpoints checked with Python pytz

### Fall-back shift in New York

- Calculate: Dates & time zone
- Start date: 2026-10-31
- Start time: 23:00
- End date: 2026-11-01
- End time: 07:30
- Time zone: America/New_York
- If the start time repeats: First occurrence
- If the end time repeats: First occurrence
- Unpaid break: 30 min
- **Hours worked: 9 h**
- **Elapsed time before breaks: 9 h 30 min**
- **Clock difference before breaks: 8.5 h**
- **Clock-change adjustment: 1 h**
- **Start instant in UTC: 2026-11-01T03:00:00Z**
- **End instant in UTC: 2026-11-01T12:30:00Z**
- Checked against: US Department of Labor, FLSA Hours Worked Advisor: the same scheduled shift gives 9 hours when clocks repeat; UTC endpoints checked with Python pytz

## Questions

### How do I calculate hours worked between two times?

Subtract the start time from the end time, take off any unpaid break, then turn the minutes into a fraction of an hour. 09:00 to 17:30 is 8 hours 30 minutes; less a 30-minute break it is 8 hours. 08:45 to 17:15 less 45 minutes is 7 hours 45 minutes, which is 7.75 hours on a timesheet that asks for decimals.

### How do I calculate hours for a shift that goes past midnight?

Add 24 hours to the end time before subtracting. From 22:00 to 06:15 the next day is (06:15 + 24:00) − 22:00 = 8 hours 15 minutes; with a 45-minute break that is 7 hours 30 minutes, or 7.5 hours. Enter the end time as it appears on the clock and the calculator adds the day itself.

### How many hours do I work when daylight saving time changes?

Choose Dates & time zone and enter both dates and the zone where the punches were recorded. In New York, 23:00 on 7 March 2026 to 07:30 on 8 March, less a 30-minute break, is 7 worked hours. The equivalent shift on 31 October to 1 November is 9 hours. The calculator compares the actual instants and shows the clock-change adjustment; it does not assume every change is one hour.

### What if 1:30 am happens twice, or a time does not exist?

For a repeated time, select First occurrence or Second occurrence separately for the start and end. On 1 November 2026 in New York, the first 01:30 to the second 01:30 is one elapsed hour. A time skipped by a forward change, such as 02:30 on 8 March 2026 in New York, is an input error; check the original record rather than inventing a time.

### When do overtime hours start?

Under the US Fair Labor Standards Act, non-exempt employees earn at least 1.5 times their regular rate for hours over 40 in a workweek, so a 43-hour week has 3 overtime hours. In the UK employers do not have to pay extra for overtime, but average pay must stay above the National Minimum Wage, and the average week is capped at 48 hours over 17 weeks unless the worker opts out.

### Do breaks count as hours worked?

Short rest breaks usually do and meal breaks usually don't. US rules (29 CFR 785.18 and 785.19) count breaks of 5 to about 20 minutes as paid work time, while a meal period of ordinarily 30 minutes or more is unpaid if the employee is completely relieved from duty. In the UK, anyone working more than 6 hours a day is entitled to a 20-minute break, which need not be paid.

### How accurate is the hours calculator?

Accuracy depends on your inputs and the method's assumptions. Decimal arithmetic uses 50 significant digits, but estimates, numerical methods and source data can be less precise; the displayed rounding does not remove those limits. It is checked against 8 worked examples whose answers come from independent sources; for example, “Day shift with a half-hour break” is checked against 8.5 h − 0.5 h = 8 h by hand.

### Where does the method come from?

US Department of Labor — Fact Sheet #22: Hours Worked Under the FLSA; US Department of Labor — Fact Sheet #23: Overtime Pay Requirements of the FLSA (over 40 hours a week); US Department of Labor — daylight-saving shift examples; IANA Time Zone Database; TC39 Temporal — time zones and resolving ambiguity.

## Sources

- [US Department of Labor — Fact Sheet #22: Hours Worked Under the FLSA](https://www.dol.gov/agencies/whd/fact-sheets/22-flsa-hours-worked)
- [US Department of Labor — Fact Sheet #23: Overtime Pay Requirements of the FLSA (over 40 hours a week)](https://www.dol.gov/agencies/whd/fact-sheets/23-flsa-overtime-pay)
- [US Department of Labor — daylight-saving shift examples](https://webapps.dol.gov/elaws/whd/flsa/hoursworked/screener11.asp)
- [IANA Time Zone Database](https://www.iana.org/time-zones)
- [TC39 Temporal — time zones and resolving ambiguity](https://tc39.es/proposal-temporal/docs/timezone.html)
