I've been watching this thread with a certain amount of awe. Personally I would like to see an accurate J replication of the DATES.w3 package shipped with APL+Win, of which I am a heavy user. It's on my list to do the conversion myself, but I'd be indebted to anyone else doing it first (plus testing it of course). It's getting to the stage where I'd even pay money for it.
In view of the bozo bugs shipped by big vendors with their shiny new platforms, I think there's a need for a general-purpose reference date/time package, and I nominate DATES in that role. It is standardised on fractional JDN (Julian Day Number), contains extensive explanations of the algorithms, common conventions and other things you need to consider, and is of astronomical quality, allowing you to handle historical dates with confidence and even choose to increment the date at midday (the astronomer's standard, because they don't like the date changing in the middle of their "working day"); midnight; or 6pm (the ancient standard: strictly at sundown). IMHO, fiddly questions about leap-seconds are far from irrelevant, even to programmers who only want to calculate in whole days. Reference dates are used a lot in this game (eg for applying the Gregorian Reform: different from country to country) and not a few users of dates packages make critical use of .GT. and .LT. -- maybe when they should be using .GE. or .LE. . Therefore handling JDN to the nearest msec is not being "anal". IMO to round-down JDN to an integer is not a decision to disregard time-of-day but a decision to standardise on precise instants when the day increments. Many applications have no need of the time-of-day, but give grief if the date is out by one day. Islamic dates are notorious in this respect, since although the calendar is defiantly moon-based, it relies on actual sightings of the new moon, not on the astronomical moon-phase resetting to zero. So Bradford and Karachi can announce different days for the start of Ramadan. (Homeland Security: please note. ;-) And as for Easter...! -- Kepler had to remind his contemporaries that Easter was a feast, not a planet. My most critical use of DATES.w3 is a generalised date/time converter which I've had under development for years. (There's even rational proposals for time standards on the Moon and Mars). I would trust DATES as the soundest platform on which to handle leap-seconds. Sorry I don't know how well-behaved it is with Chinese dates. The only improvement I'd make to DATES is to perform each conversion to/from JDN not once but three times (+(_1 0 1) seconds) and flag a warning condition if the day changes. Has anyone else experience with DATES.w3? Glitches I don't know about? Ian On Fri, Sep 11, 2009 at 4:38 PM, R.E. Boss <[email protected]> wrote: > I do not know how relevant this is, but it appears to be useful, sometimes. > > NB. from > http://dev.whydomath.org/Reading_Room_Material/ian_stewart/2000_03.html > EasterSunday =: 3 : 0 NB. y is year(s) > A=. 19 | y > 'B C'=. 100 (<....@%~ ,: |) y > 'D E'=. 4 (<....@%~ ,: |) B > G=. <. 25 %~ 13 + 8 * B > H=. 30 | 15 + B + (19*A) - D + G > 'J K'=. 4 (<....@%~ ,: |) C > M=. <. (A + 11 * H) % 319 > L=. 7 | 32 + M + (2 * E + J) - H + K > N=. <. (90 + H + L - M) % 25 > P=. 32 | 19 + H + L + N - M > |:y,N,:P > ) > > EasterSunday 2000 + i.10 > 2000 4 23 > 2001 4 15 > 2002 3 31 > 2003 4 20 > 2004 4 11 > 2005 3 27 > 2006 4 16 > 2007 4 8 > 2008 3 23 > 2009 4 12 > EasterSunday 1000000 NB. from Ian Stewart > 1000000 4 16 > > > From the link above " Under the rules of the Gregorian calendar, the cycle > of Easter dates repeats exactly after 5,700,000 years." > > > R.E. Boss > > > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
