How this calculator works
The interval runs from the start date, which is included, up to the end date, which is excluded. Full weeks contribute five weekdays each, and the leftover days are checked one by one. Each unique holiday date that falls on a weekday inside the interval removes one day. Duplicate holidays, weekend holidays and dates outside the interval change nothing, so unused slots can stay on a weekend date.
Formula
Let L = O(end_date) - O(start_date), q = floor(L / 7), r = L mod 7, and w the weekday of the start date with Monday as 0. Start with 5q plus one for each j from 0 to r - 1 where (w + j) mod 7 is below 5. Then subtract each unique holiday in the interval that falls on a weekday.
Worked example
From Monday 2026-06-29 to Monday 2026-07-06, with Canada Day on Wednesday 2026-07-01 supplied as a holiday, gives 4 business days. A same-date interval gives zero.
Advertisement
Frequently asked questions
Are Canadian statutory holidays removed automatically?
No. Federal, provincial and employer schedules differ, so you supply the observed dates yourself. Nothing is inferred from the province or the year.
Why is the end date excluded?
A half-open interval makes chained counts add up cleanly: the end of one period is the start of the next without double counting. If you need both endpoints, choose the following day as the end date.
What happens to a holiday that falls on a weekend?
It subtracts nothing, because weekends are already excluded from the weekday count. Move an observed holiday to the weekday it was actually taken on if that differs.