🗓️ Working Days Calculator

🔧 Operation

📅 From date

📅 To date (inclusive)

The range is inclusive of both endpoints. The "to" date must be on or after the "from" date.

📅 Base date

➕ Working days (signed)

Positive values shift forward; negative values shift backward. Weekends and listed holidays are skipped.

🎉 Holiday list (optional)

One YYYY-MM-DD per line. Duplicates are silently deduped. Weekend holidays do not double-count.

📤 Result

{{ outputPrimary }}

🗓️ Range breakdown

From
{{ countResult.from.isoDate }} ({{ countResult.from.dayOfWeek }})
To
{{ countResult.to.isoDate }} ({{ countResult.to.dayOfWeek }})
Total calendar days
{{ countResult.totalCalendarDays.toLocaleString() }}
Weekend days
{{ countResult.weekendDays.toLocaleString() }}
Holidays in range
{{ countResult.holidaysInRange.length }}
Holidays counted (weekday)
{{ countResult.holidayDaysCounted }}
Working days
{{ countResult.workingDays.toLocaleString() }}
Holidays in range: {{ countResult.holidaysInRange.join(', ') }}

📐 Shift breakdown

Base date
{{ addResult.base.isoDate }} ({{ addResult.base.dayOfWeek }})
Working days added
{{ addResult.daysAdded }}
Weekends skipped
{{ addResult.weekendsSkipped }}
Holidays skipped
{{ addResult.holidaysSkipped }}
Calendar days shifted
{{ addResult.totalCalendarDaysShifted.toLocaleString() }}
Result
{{ addResult.result.isoDate }} ({{ addResult.result.dayOfWeek }})
⚠️

ℹ️ About Working Days Calculator

What this tool does

The Working Days Calculator counts the number of business days (Monday through Friday) between two dates, or shifts a base date by a signed number of working days. An optional holiday list lets you exclude additional non-working dates such as bank holidays, public holidays, or company shutdowns.

  • Count between — for an inclusive date range [from, to], returns the working-day count, the total calendar days, the number of weekend days, and the listed holidays that fell in range.
  • Add working days — given a base date and a signed number of working days (e.g. +5 or -10), returns the resulting business date with its weekday and a breakdown of weekends and holidays skipped.

Calendar definition

The calculator uses the proleptic Gregorian calendar (modern leap-year rule extended backward in time) with all arithmetic performed via Date.UTC. The same inputs always produce the same outputs regardless of host timezone or DST transitions. Years from -9999 through 9999 are supported. Calendar dates are validated by round-tripping through setUTCFullYear, so Feb 30 → Mar 2 auto-rollover is rejected.

Weekends are Saturday and Sunday. Other regional working weeks (e.g. Sunday–Thursday for Friday-as-weekend conventions) are not configurable in this build; use the holiday list as a workaround if you need to exclude specific dates.

Holiday list

Paste one YYYY-MM-DD per line. Empty lines are ignored. Duplicate entries are silently deduped. Entries that do not match the strict YYYY-MM-DD format throw an error so typos surface immediately.

A holiday that falls on a weekend does not double-count: the working-day arithmetic already treats it as a weekend day, and the tool's holidayDaysCounted field tracks only weekday holidays that genuinely reduce the working-day count. The full holidaysInRange list still includes weekend holidays so you can confirm they were considered.

Worked examples

  • Mon 2026-05-25 → Fri 2026-05-29 inclusive = 5 working days, 5 calendar days, 0 weekend days.
  • Mon 2026-05-25 → Sun 2026-05-31 inclusive = 5 working days, 7 calendar days, 2 weekend days.
  • Mon 2026-05-25 with one Wednesday holiday on 2026-05-27 → Fri 2026-05-29 = 4 working days (5 − 1 holiday).
  • Fri 2026-05-29 + 1 working day = Mon 2026-06-01 (Sat/Sun skipped).
  • Mon 2026-05-25 + 5 working days = Mon 2026-06-01 (one weekend pair skipped).
  • 2026 full calendar year (2026-01-01 → 2026-12-31) = 261 working days with no holidays applied. This matches the standard ISO business-day count for a non-leap year whose Jan 1 falls on a Thursday.

Use cases

  • Project planning — compute the deadline of a task that must complete N business days after a kickoff date.
  • HR and payroll — count working days in a quarter or year for proration, accrual, or PTO budgeting.
  • SLAs and contracts — calculate "respond within five business days" deadlines while honoring a company holiday calendar.
  • Finance and trading — count settlement days excluding weekends and known market holidays (note: actual exchange calendars vary — paste the relevant holiday list).
  • Service desks — measure response and resolution windows in business days instead of calendar days.

Privacy note

The interactive page runs the calculation in your browser. Dates and holiday lists are not sent to the server for normal use. The public API endpoint accepts the same fields for automation if you need to integrate the algorithm into a backend workflow.

References

API Usage Example:

POST /api/tools/time/working-days-calculator
Content-Type: application/json

{
    "operation": "countBetween",
    "fromYear": 2026,
    "fromMonth": 5,
    "fromDay": 25,
    "toYear": 2026,
    "toMonth": 6,
    "toDay": 30,
    "holidays": [
        "2026-05-25",
        "2026-06-19"
    ]
}
Ready