The calculator walks day by day from your start date to the day before your end date and bins each date as counted, skipped by the days-not-counted pattern, or skipped because it appears in your extra-date list. A listed date is excluded only when it is inside your range and not already skipped by the chosen pattern.
Day-by-day walk under a chosen days-not-counted pattern:
- Parse the start and end dates as UTC-midnight ISO timestamps.
- Resolve the skipped weekday set from the chosen pattern: Sat-Sun, Fri-Sat, or Sun-only.
- Parse the optional extra-date list into a set of UTC-midnight timestamps.
- For each date in [start,end), count it as daysNotCounted, excludedDates, or weekdays.
- If the end date precedes the start date, negate all counts so the sign surfaces the reversed range.