Calculating the number of days between two arbitrary dates is doable for humans and trivial on modern computers. However, calculating the number of working days: Mondays through Fridays, is more complicated. In this puzzle you are asked to devise an algorithm for doing this. It is something you can do on the back of a napkin, so you don’t need anything besides pen, paper and the rational part of your brain.
Problem
Given two dates where , what is the number of workdays between these two dates? Assume that only Saturdays and Sundays are not workdays: holidays can be ignored.
You may use the following definitions augmented with any standard mathematical functions, like and .
- is a date
- Subscripts are used to indicate different dates:
- yields the number of days between two dates. This is negative if and zero if the dates are identical
- gives the day of the week for the given date as a number (1 = Monday, 2 = Tuesday, …, 7 = Sunday)
- gives the number of the week for the specified date (in the range 1 up to including 53)
- is the set of numbers that represent working days (a subset of the domain of the weekday function)
Try to work out a solution first, then expand mine below.