How to Calculate Working Weeks Between Two Dates (And Why It's Harder Than It Looks)
You have two dates and you need to know how many working weeks are between them. It sounds like a five-second problem. Divide the days by 7, maybe subtract some weekends — done.
Except it isn't, because "working week" isn't a precise term. Depending on what you're calculating — a notice period, a project timeline, a leave entitlement, a contract duration — the right method is different, and using the wrong one can be off by days in ways that matter legally or financially.
What Exactly Is a "Working Week"?
A working week most commonly means five days: Monday through Friday. But there are edge cases worth knowing:
- Some industries and countries use a 6-day working week (Monday–Saturday)
- Some roles have compressed 4-day working weeks
- The Middle East traditionally uses Sunday–Thursday, though most countries have moved to Monday–Friday
- Part-time workers may have working weeks of 2, 3, or 4 days
For the rest of this article, "working week" means a standard Monday–Friday week unless stated otherwise. The methods generalise once you know the right working days for your situation.
Method 1: Whole Working Weeks
The simplest interpretation: how many complete Monday-to-Friday blocks fit between two dates?
This is what most people mean when they ask "how many weeks' notice is that?" A 4-week notice period means 4 complete Monday–Friday blocks — 20 working days — regardless of where in a week the start date falls.
The calculation:
1. Count the total calendar days between the two dates 2. Subtract the weekends: each full 7-day block contains 2 weekend days 3. Account for partial weeks at the start and end
In practice it's easier to count working days directly and divide by 5:
working_weeks = working_days / 5
where working_days is the count of Monday–Friday days between the two dates.
Example: April 7 (Monday) to May 2 (Friday)
- Calendar days: 25
- Weekends within the range: 4 Saturdays + 4 Sundays = 8 days
- Working days: 25 − 8 = 17... wait, that's not right.
The correct way: count Mondays through Fridays inclusive:
- Week 1: Apr 7–11 (5 days)
- Week 2: Apr 14–18 (5 days)
- Week 3: Apr 21–25 (5 days)
- Week 4: Apr 28–May 2 (5 days)
Total: 20 working days = 4 working weeks exactly.
Because the example starts on a Monday and ends on a Friday, it works out cleanly. Starting or ending mid-week produces a fractional result, which brings us to the next method.
Method 2: Working Days Divided by 5
For most practical purposes — project planning, timeline estimates, capacity calculations — you don't need whole weeks. You need working days, and you express the result as weeks and days.
The formula:
total_working_days = (full_weeks × 5) + working_days_in_partial_week
weeks = floor(total_working_days / 5)
remaining_days = total_working_days mod 5
Example: March 18 (Wednesday) to April 11 (Friday)
Count working days:
- Mar 18 (Wed) to Mar 21 (Fri): 4 days
- Mar 24–28: 5 days
- Mar 31–Apr 4: 5 days
- Apr 7–11: 5 days
Total: 19 working days = 3 weeks and 4 days.
This method is right for project timelines where you're working with capacity in days, not calendar weeks.
Method 3: ISO Week Span
Sometimes "how many weeks between" means: what is the difference in ISO week numbers?
Example: An event runs from ISO Week 10 to ISO Week 23. That's 13 ISO weeks of duration.
The calculation:
week_span = (end_iso_year × 52.18) + end_iso_week − (start_iso_year × 52.18) + start_iso_week
In practice, for dates within the same year:
week_span = end_iso_week − start_iso_week
For dates spanning a year boundary, you need to account for whether the start year had 52 or 53 weeks:
week_span = (52_or_53_for_start_year − start_iso_week) + end_iso_week
This method is relevant for broadcast scheduling, retail planning, and any system that organises work by ISO week number rather than by working days.
The Date Inclusivity Problem
One of the most common sources of errors: whether to count the start date, the end date, both, or neither.
A "4-week notice period starting today" could mean:
- 4 weeks from today, where today is day 1 (inclusive start): the period ends on the same weekday, 4 weeks later
- 4 weeks after today (exclusive start): the period ends one day later than above
Employment law in most countries specifies this explicitly. UK employment law counts the notice period from the day after the notice is given. In the US it varies by contract.
The difference is one day. In most cases that doesn't matter. In employment disputes or contract terminations, it can.
Safe convention: always specify "X working weeks from [date], inclusive/exclusive." Don't leave it ambiguous.
Public Holidays: The Calculation Everyone Forgets
Working week calculations that don't account for public holidays are wrong by definition — they'll overcount available working time.
The challenge: public holidays aren't standardised. They vary by:
- Country (Christmas is December 25 in the UK; it's not a public holiday in Japan)
- Region within a country (US states have different holidays; England and Scotland have different bank holidays)
- Year (moveable feasts like Easter change date every year)
- Employment contract (some jobs have additional holidays; some public sector workers observe different dates)
For rough estimates — "that's about 6 working weeks" — ignoring holidays is fine. For precise calculations — contract deadlines, notice periods, legal timeframes — you must subtract the applicable public holidays.
No calculator can do this for you automatically without knowing your jurisdiction and the specific year. The days between dates calculator gives you the working day count excluding weekends; you subtract your local public holidays manually.
A useful approximation for the UK: there are about 8 bank holidays per year, roughly 1.6 per month. For a 3-month calculation that's about 5 holidays to subtract. For the US federal holidays: 11 per year, roughly 0.9 per month.
Notice Periods: How the Maths Actually Works
Employment contracts state notice periods as weeks or months. Converting these to working days is where mistakes happen most often.
"4 weeks' notice" means 4 calendar weeks (28 days), not 4 × 5 = 20 working days. If notice is given on a Tuesday, it runs for 28 calendar days — which includes weekends. The last day of the notice period is the Tuesday 4 weeks later.
This surprises people because they expect "4 weeks" to mean 20 working days. It doesn't — it means 28 calendar days, and the weekends within it still count as notice period, even though you don't work them.
"1 month's notice" is even less precise. A month from January 15 is February 15. A month from January 31 is February 28 (or 29 in a leap year). The number of calendar days varies from 28 to 31. The number of working days within that month varies from 20 to 23.
Working weeks vs calendar weeks in contracts:
If a contract says "4 working weeks' notice," that means 20 working days — Monday to Friday only. Weekends are not counted. In that case a notice starting on Tuesday would run for 20 working days, ending several calendar weeks later depending on how many weekends fall within the period.
Always check whether your contract says "weeks" or "working weeks." The difference can be 8–10 days over a typical notice period.
Project Timelines: Weeks of Effort vs Calendar Weeks
In project management, "3 weeks of work" and "3 calendar weeks" are not the same thing.
3 weeks of effort at full capacity = 15 person-working-days. If a task is 3 weeks of effort for one person working full time, it takes 3 calendar weeks. If two people share it, it takes 1.5 calendar weeks. If one person is at 50% capacity, it takes 6 calendar weeks.
3 calendar weeks = 15 working days assuming no holidays, no one is part-time, and there's no context-switching overhead.
The distinction matters when planning delivery dates. If you tell a stakeholder a feature will take "3 weeks" and you mean working weeks at 80% capacity with a bank holiday in the middle, the calendar end date is quite different from what they're imagining.
When quoting timelines:
- State working days, not weeks, for tasks shorter than a month
- State the calendar end date as a sanity check
- Explicitly note any holidays in the window
Calculating Working Weeks in Code
Python:
from datetime import date, timedelta
def working_days(start: date, end: date) -> int:
total = 0
current = start
while current <= end:
if current.weekday() < 5: # 0=Mon, 4=Fri
total += 1
current += timedelta(days=1)
return total
def working_weeks(start: date, end: date) -> float:
return working_days(start, end) / 5
# Example
start = date(2026, 4, 7)
end = date(2026, 5, 2)
print(working_days(start, end)) # 20
print(working_weeks(start, end)) # 4.0
For large date ranges, a faster approach uses modular arithmetic to avoid looping:
def working_days_fast(start: date, end: date) -> int:
days = (end - start).days + 1
full_weeks, remainder = divmod(days, 7)
working = full_weeks * 5
# Count working days in the partial week
start_dow = start.weekday() # 0=Mon
for i in range(remainder):
if (start_dow + i) % 7 < 5:
working += 1
return working
JavaScript:
function workingDays(start, end) {
let count = 0
const current = new Date(start)
while (current <= end) {
const day = current.getDay()
if (day !== 0 && day !== 6) count++ // 0=Sun, 6=Sat
current.setDate(current.getDate() + 1)
}
return count
}
function workingWeeks(start, end) {
return workingDays(start, end) / 5
}
SQL (PostgreSQL):
-- Working days between two dates (excluding weekends)
SELECT
(EXTRACT(DOW FROM end_date) - EXTRACT(DOW FROM start_date))::int +
((end_date - start_date) / 7) * 5 +
CASE WHEN EXTRACT(DOW FROM start_date) = 0 THEN 1 ELSE 0 END +
CASE WHEN EXTRACT(DOW FROM end_date) = 6 THEN -1 ELSE 0 END
AS working_days
FROM (SELECT DATE '2026-04-07' AS start_date, DATE '2026-05-02' AS end_date) t;
A Quick Reference
| What you want | Method |
|---|---|
| Notice period duration | Calendar days (weekends count) |
| Project working capacity | Working days (Mon–Fri), divide by 5 for weeks |
| Broadcast/retail planning | ISO week span |
| Leave entitlement | Working days, subtract public holidays |
| Contract deadlines | Calendar days unless contract says "working days" |
The days between dates calculator shows both calendar days and working days for any date range — useful as a starting point before adjusting for public holidays in your jurisdiction.