Two operations: the gap, and the shift
Counting days between two dates and moving a date forward or back are the same arithmetic run in opposite directions. Both work on the true number of days, so leap years and uneven month lengths take care of themselves.
Calendar days vs business days
Switching to business days drops every Saturday and Sunday, so a run of working days spreads out over noticeably more elapsed calendar time.
Twenty business days is four working weeks but lands about eight days later on the calendar than twenty straight days, because eight weekend days sit inside it.
Where a day count catches people out
- Inclusive vs exclusive. "How many days from Monday to Wednesday" is 2 if you count nights, 3 if you count both endpoints. Contracts and hotels differ, so decide which you mean.
- Days are not months. Adding 30 days is not the same as adding a month; a calendar month runs 28 to 31 days. When a term is written in days, count days.
- Direction matters. A past target gives a negative difference. Read it as "days ago" rather than treating the sign as an error.
- Leap day. A span crossing February 29 in a leap year is one day longer than the same calendar span in an ordinary year.
Common questions
Does the count include both the start and end date?
By default no. The plain difference counts the nights between the two dates, so the start day is day zero and the end day is the last one counted. Turn on the inclusive option to count both endpoints, which adds one day.
What is the difference between calendar days and business days?
Calendar days count every day. Business days count Monday to Friday only and skip weekends, so the same span of working days reaches much further along the calendar. Public holidays are not removed unless you subtract them yourself.
How does adding days handle month ends and leap years?
It counts real days, not months, so it rolls over month and year boundaries automatically and lands on February 29 in a leap year when the arithmetic falls there. That is why "add 30 days" and "add one month" can give different results.


