Richard, That is a very good explanation, and 100% correct.
Dave On Mon, Nov 20, 2017 at 12:30:38PM +1300, Richard A. O'Keefe wrote: > I think the fundamental question is what a Date is supposed > to represent. I have spent a LOT of time thinking about date > and time classes over the last 10 years, and have come to the > conclusion that it makes no sense to view a Date as a Timespan. > > Let's take an example. > Christmas this year is going to be 2017-12-25 in every country > that uses the Gregorian calendar and observes Christmas at all. > If I ask the question > "Is Christmas on the same date in Utah as it is in Otago?" > I expect to get the answer YES. > But if I ask the question > "Is the span of time *called* Christmas day there same > as the span of time *called* Christmas day here?" > I expect to get the answer NO. > > It's not entirely unlike the way that '95 Hanover Street' > is the same street address in my city as '95 Hanover Street' > in Edinburgh, but they correspond to quite different places. > (Here: the Urgent Doctors; there: serviced apartments.) > > Returning to Dates, I expect something like > aDate asTimespan: aTimeZone > to return a timespan that might be 23, 24, or 25 hours > (possibly plus an extra second), with *maybe* > aDate asTimespan > meaning > aDate asTimespan: TimeZone here > > Naturally the same goes for Weeks, Months, and Years, should > they exist. >