Business Hours Calculator
Count working hours between two dates and times, excluding weekends, holidays and time outside the working day — the figure SLAs are written against.
How to use this calculator
- 1Enter the start and end date and time, using 24-hour times.
- 2Set the working window and any unpaid break.
- 3Mark weekend days as working if they are, and paste any public holidays.
How the calculation works
for each day: hours += max(0, min(day end, period end) − max(day start, period start)) full days lose the unpaid break- day start / day end
- The working window, such as 09:00 to 17:00
- period start / period end
- The elapsed period, clipped to each calendar day
- overlap
- The intersection of the two — zero on days where the period falls entirely outside working hours
Counting by intersection handles partial first and last days automatically. The alternative — subtracting whole days and adjusting the ends — needs special cases for periods that start or end outside the window, and those are where hand calculations go wrong.
A period beginning after the working day ends contributes zero for that day rather than a negative amount, which is what the max(0, …) guards.
The unpaid break is deducted only from days where the whole window was worked. A partial day of two hours does not lose a lunch break that was never taken.
Worked example
A ticket raised late on Friday
- 1.Friday 14 August, 16:30 to Monday 17 August, 10:15.
- 2.Friday: the window is 09:00–17:00 and the period starts at 16:30, so 0.5 hours count.
- 3.Saturday and Sunday are not working days and are skipped entirely.
- 4.Monday: the period ends at 10:15, so from 09:00 that is 1.25 hours.
- 5.Total: 0.5 + 1.25 = 1.75 business hours.
- 6.On the clock, 65.75 hours passed — nearly 38 times more.
Result: 1.75 business hours from 65.75 clock hours
A full working week with a lunch break
- 1.Monday 09:00 to Friday 17:00 — five full working days.
- 2.The window is 8 hours a day, less a 1-hour unpaid break, so 7 hours each.
- 3.Every day is worked in full, so the break applies to all five.
- 4.Total: 5 × 7 = 35 business hours.
- 5.Clock time elapsed is 104 hours, of which 69 fall outside working time.
Result: 35 business hours
Why SLAs are written in business hours
A service level agreement promising a four-hour response sounds like four hours. Measured in business hours against a nine-to-five week, a ticket raised at 16:30 on Friday can legitimately be answered at 11:30 on Monday and still be within target — 67 hours later on the clock.
This is not sharp practice; it is what makes the commitment achievable without staffing overnight and at weekends. But it is the single most common source of disagreement about whether an SLA was met, and the disagreement is almost always about the definition rather than the arithmetic.
The practical lesson for anyone signing one is to read what the working window actually says. "24/7" and "business hours" differ by a factor of more than four on the same nominal number, and a four-hour business-hours target is a considerably weaker promise than it appears.
Time zones are where this genuinely breaks
This calculator treats every time as being in one zone, which is correct for a team and customer in the same place and wrong the moment they are not. A ticket raised at 16:30 in London arrives at 08:30 in San Francisco — the same instant, but at opposite ends of the two working days.
Agreements that do not name a zone therefore produce two different answers depending on who is counting, and both parties can be measuring in good faith. The fix is contractual rather than computational: state the working window in a specific named zone, and state whether that zone observes daylight saving.
Follow-the-sun support arrangements avoid the problem differently, by handing tickets between regions so that some team is always inside its working window. That changes the calculation entirely, because the effective window becomes 24 hours on weekdays.
What this assumes, and where it stops
Assumptions
- All times are in a single time zone.
- The working window is the same on every working day.
- The unpaid break is deducted only from days where the entire window was worked.
- Holidays are skipped in full, regardless of the time of day.
Limitations
- Single time zone only. Where the parties are in different zones, the window must be agreed in one named zone before the figure means anything.
- Overnight working windows, such as 22:00 to 06:00, are not supported. Count each shift separately.
- The same window applies to every day. Sites with different Friday hours need each period calculated separately.
- Does not model daylight saving transitions, which add or remove an hour on two days a year.
- Public holidays must be entered by hand — there is no built-in calendar, because they differ by country and region.
Common questions
How do I calculate business hours between two dates?
Take each calendar day in the period, skip weekends and holidays, and count the overlap between the working window and the elapsed time on that day. Partial first and last days count only the part that falls inside the window — a period starting at 16:30 against a 17:00 close contributes 30 minutes.
Why is an SLA measured in business hours so much longer in real time?
Because only the working window counts. Against a nine-to-five weekday schedule, one business day is 8 of 24 clock hours, and weekends contribute nothing at all. A four business-hour target on a Friday afternoon can run to Monday morning — around 67 clock hours — and still be met.
Should lunch breaks be excluded from business hours?
It depends on what you are measuring. For payroll or billing, an unpaid break should come out. For response-time SLAs it usually does not, because the clock is measuring elapsed availability rather than hours worked. Set the break to zero if you want the window counted continuously.
What is the difference between business days and business hours?
Business days count whole working days and ignore the time of day, so anything on the same day is zero days. Business hours count actual working time, so a ticket raised at 09:00 and answered at 16:00 is 0 business days but 7 business hours. Hours are the finer measure and the one SLAs normally use.
Sources
Formula and content last reviewed on .
Results are estimates for information only, not professional advice.
Related calculators
Tools people commonly use alongside the business hours calculator.