|
Boost : |
From: Richard Damon (rdamon_at_[hidden])
Date: 2002-04-26 09:06:51
> -----Original Message-----
> From: boost-admin_at_[hidden] [mailto:boost-admin_at_[hidden]]On
> Behalf Of William E. Kempf
> Sent: Wednesday, April 24, 2002 10:38 AM
> To: boost_at_[hidden]
> Subject: Re: [boost] Re: reminder about Date/Time formal review
>
>
> ----- Original Message -----
> From: "Richard Damon" <rdamon_at_[hidden]>
> To: <boost_at_[hidden]>
> Sent: Tuesday, April 23, 2002 10:15 PM
> Subject: RE: [boost] Re: reminder about Date/Time formal review
> >
> > Wrong. Gregorian dates are not dependant on where your are in this way.
> What
> > is dependant is which colander was in use.
>
> July 4, 1751 in the US was a very different day then July 4, 1751 in
> England. The reason, as you point out (and I thought was obvious
> from what
> I posted) is because the US didn't adopt the Gregorian system until Sept.
> 14, 1752... or, more precisely, they adopted it on Sept. 2, 1752, which
> immediately became Sept. 14, 1752. The point is, you can't project dates
> backwards with out knowing the location as well as the date. Further, the
> "change over" date also effects this. If the change over date used by the
> system were the American Sept. 14, 1752 this would mean the algorithm
> doesn't take into account things such as the missing day added at
> this time
> when dates are projected further back.
>
The point is that you need to specify the calendar when you specify a date.
If I said I weighed 150 (which I don't) you would have to guess if that was
a trim 150 lb or a hefty 150 Kg, which would probably be dependant on where
I quoted my weight. In the same way a date of July 4, 1751 does not tell you
when something happened. You need to specify which calendar you are using.
> > Gregorian (Sept 14, 1752)-1 = Gregorian(Sept 13, 1752) = Julian(Sept 2,
> > 1752)
>
> The above isn't accurate. Gregorian (Sept. 14, 1752) - 1 =
> Gregorian (Sept.
> 12, 1752) if you were in one of the regions that adopted the Gregorian
> calendar in 1582, or Julian (Sept. 2, 1742) if you were in
> America or one of
> the other locations that was still using the Julian calendar. The problem
> is that the Gregorian calendar has not been a stable system, with 10 days
> being added to the Julian system in 1582 and 11 days being added in 1752
> when America switched over.
>
Gregorian (Sept 14, 1752) -1 is ALWAYS equal to Gregorian(Sept 13, 1752) and
is ALWAYS equal to Julian(Sept 2, 1752).
The representation in a specific calendar is independent of where you are,
because the Gregorian and Julian calendars are not dependant on location
(as opposed to the Moslem calendar which is dependant on observation).
If we said American_Calendar(Sept 14, 1752) -1 = American_Calendar(Sept 2,
1752) that would be correct, because American_Calendar changed from tracking
Julian to Gregorian on that date.
In a date library I would expect that in the lower levels, a variable would
be always in a specific calendar. The lowest level possibly deals with
linear time counting days from some baseline. As such if I declare a
variable to be a Gregorian date then for that variable: Sept 14, 1752 -1 =
Sept 13, 1752. If I was to output that date I would need to mark is as
Gregorian (or New Style) or possible convert it to Julian if I was talking
about the date in America. If I was to create a local-calendar class, which
expressed dates in the local system, it would need to handle all of these
problems. One thing to note is that when we in America celebrate Washington
Birthday on Feb 22, we are celebrating the Gregorian date of is birth even
though he was born Feb 11 on the then active Julian Calendar. When you talk
about dates in this period you need to be very careful which calendar they
are in.
The Gregorian calendar IS a stable calendar. The apparent shift is
difference is because the Gregorian calendar did not have a Feb 29, 1700
which the Julian did.
Julian Date Gregorian Date
Feb 18 1700 Feb 28 1700 (Looks like 10 days)
Feb 19 1700 Mar 1 1700
Feb 20 1700 Mar 2 1700
...
Feb 28 1700 Mar 10 1700
Feb 29 1700 Mar 11 1700
Mar 1 1700 Mar 12 1700 (Looks like 11 days)
I hope I am not to long winded here, but I do have a passion for dates. As a
hobby, I am a genealogist, and have noted that most programs available have
poor to moderate handling of dates.
Richard Damon
-- rbrdamon_at_[hidden] (Home) rdamon_at_[hidden] (Work)
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk