Finally got around to trying these out with Dates. The one hiccup I ran into for getting Date/Period ranges to automatically work was the `step == 0`, `step>0` lines in the constructor, and the `step(r) == 0` in the `show` method for `Range`. I changed them to `step == zero(S)` and `step>zero(S)`, along with `step(r) == zero(typeof(step(r0)))` in the `show` method and everything works like a charm!
The reason is Date/Real and Period/Real comparisons aren't allowed in the Dates code.
I'll pull out the old range tests I use to have for DateTimes and Periods and play with this some more.