Working Days Calculator
Count the working days between two dates under your own rules — pick the weekend convention, list the holidays that actually close your workplace, and read a breakdown that shows where every day of the span went.
Monday to Sunday, end day included — working days are the span minus its weekends and holidays.
Results update as you type. Holidays that land on the weekend are ignored — those days were never working days — and everything runs in your browser, in UTC.
How it works
- 1
Pick the two dates
Choose a start date and an end date from the calendar fields. Order does not matter — if the end date is earlier than the start, the tool walks the span in reverse and returns the same count, so a range typed back to front still produces the right number.
- 2
Choose which days are the weekend
The preset covers the common conventions: Saturday–Sunday (the default), Friday–Saturday, Sunday only, or no weekend at all for 7-day operations. The weekend is what the tool excludes before it looks at your holiday list.
- 3
List your holidays
Type one ISO date per line — 2026-10-07 — for each day your workplace is closed. Holidays landing on the weekend are ignored, because those days were already outside the working count, and the same date entered twice is only removed once.
- 4
Read the breakdown
The result splits the span into working days, weekend days and holidays removed, with the total alongside, so you can see where every day of the span went. The include-end checkbox adds the end date itself to the span when the deadline day should count.
One week, four answers: why the count walks day by day
The fastest way to see what a working-day count actually does is to hold the week constant and move its edges. The week shown below is Monday, October 5 to Sunday, October 11, 2026, under the default Saturday–Sunday weekend. Counted end to end it holds 7 days, of which exactly 5 are working days — which is the answer everyone expects from a week. Trim the span to end on Friday and it still holds 5 working days, now out of 5 calendar days; stop at Saturday and the weekend day joins the span without touching the working count. The working days did not move; the window around them did.
| Span (October 2026) | Total days | Weekend days | Working days |
|---|---|---|---|
| Mon 5 → Fri 9, end included | 5 | 0 | 5 |
| Mon 5 → Sat 10, end included | 6 | 1 | 5 |
| Mon 5 → Sun 11, end included (the full week) | 7 | 2 | 5 |
| Mon 5 → Sat 10, end excluded | 5 | 0 | 5 |
A days ÷ 7 × 5 shortcut reproduces only the full-week row and misses the others: the two five-day spans are five solid working days, not the 3.6 the formula predicts. Rows two and four are the same two dates read both ways — the tool's default, end excluded, walks Monday to Friday and finds five working days in five calendar days, while including the end pulls the Saturday into a six-day span without touching the working count. Over longer spans the discrepancy compounds quietly, because the fraction of the span occupied by whole weekends depends on where the endpoints fall. Walking the span one calendar day at a time — which is what this tool does — makes the endpoints irrelevant to accuracy: every Saturday and Sunday in the window is counted once, whether the span begins on a Monday, a Thursday or a Saturday itself.
The same walk is what keeps a year honest. Calendar 2026 runs 365 days from Thursday, January 1 to Thursday, December 31, and the day-by-day count lands on 261 working days and 104 weekend days — 52 Saturdays and 52 Sundays, no rounding, no remainder. That number is the base a payroll year or an SLA calendar starts from, before holidays and leave are subtracted.
Weekends are a convention: the same week under four presets
Nothing about Saturday and Sunday is built into the calendar; they are the days a particular workplace agreed to close. The rest of the world runs on other agreements — a Friday–Saturday weekend is standard across much of the Middle East, some operations rest on Sunday alone, and hospitals, hotels and support desks may close for no day at all. The preset exists so the tool can answer for the convention you actually work under, rather than the most common one.
| Weekend preset | Days rested (Mon 5 – Sun 11) | Working days |
|---|---|---|
| Saturday–Sunday (default) | Sat 10, Sun 11 | 5 |
| Friday–Saturday | Fri 9, Sat 10 | 5 |
| Sunday only | Sun 11 | 6 |
| No weekend | — | 7 |
The first two rows landing on the same 5 is coincidence of that particular week, not a rule: under Friday–Saturday the rested days are Friday the 9th and Saturday the 10th, and Sunday the 11th becomes a working day. The two conventions part ways only over spans that hold a Sunday but no Friday — the weekend of Saturday the 10th to Sunday the 11th holds no working day at all under the Saturday–Sunday preset and exactly one under Friday–Saturday, end day included. That is the sensitivity the preset exists for: a deadline computed with the wrong weekend convention is wrong in a direction nobody notices until the day itself arrives, which is why the preset sits one click above the result instead of buried in settings.
The none preset has a use beyond shift work: it turns the tool into a plain day counter whose output you can inspect. With no weekend and no holidays, the count of a span is simply its length, which makes it easy to confirm the span itself — inclusive or exclusive, forward or reversed — is what you intended before layering a weekend convention on top.
Holidays: what gets removed, and what deliberately doesn't
The holiday list is the tool's way of learning which business days your workplace stands down for, and it is applied strictly: a holiday removes a day from the count only when that day would otherwise have been a working day. A holiday falling on the weekend is ignored — not because it is not a real holiday, but because the day was already outside the working count, and subtracting it would debit the span twice for one closed door. Duplicates in the list collapse to a single removal for the same reason.
The worked example is that full October week again — Monday the 5th to Sunday the 11th, end included — with the workplace closed on Wednesday, October 7. The Wednesday is a business day, so it leaves the count; the weekend days stand; and the week that held 5 working days now holds 4.
| Holiday list for the week Mon 5 – Sun 11 | Working days | Holidays removed |
|---|---|---|
| (none) | 5 | 0 |
| Wed Oct 7 | 4 | 1 |
| Wed Oct 7, Wed Oct 7 (duplicate line) | 4 | 1 |
| Sat Oct 10 — a weekend-falling holiday | 5 | 0 |
| Wed Oct 7 and Sat Oct 10 | 4 | 1 |
Every row above is what the calculator returns for those exact inputs, so the table doubles as a test script: paste the dates into the fields, tick the include-end box, and the breakdown below the result should reproduce each line. When a count looks wrong, the breakdown is the place to look — a holiday removed that you did not expect is almost always a typo in the list, and the inline validation under the textarea names any line it cannot read as a calendar date before it can reach the count.
Frequently asked questions
Why isn't the answer just the number of days divided by 7, times 5?
What counts as the weekend?
Why doesn't a holiday that falls on the weekend reduce the count?
Why do I have to type the holidays in myself?
Does the end date count?
What do people count working days for?
Related tools
Last updated: October 10, 2026