Re: Programming a calendar system
From: | Mark J. Reed <markjreed@...> |
Date: | Thursday, April 29, 2004, 21:03 |
On Thu, Apr 29, 2004 at 08:59:09PM +0200, Carsten Becker wrote:
> The planet's name is AREQA with a Q, but anyway.
Sorry.
> I haven't got any names for months etc. yet, I just want to have the
> maths first.
> The solar year is 456,25 days long, the calendar year has only 456
> days. Thus, in 4 years, the year is 1 day too long.
No, you have that backwards. If the solar year is 456.25 days long,
then four solar years are 456.25 x 4 = 1,825 days. Whereas four
calendar years are only 456 x 4 = 1,824 days. So you need to *add*
one calendar day, just as with our calendar, which has approximately the
same fraction (one year = 365.25 days, so we *add* a day, Feb 29th,
to every fourth year).
So either you make every fourth year longer, like on our calendar, or
make your average year length 455.75 days instead of 456.25 days.
I would go with the 455.75-day year, since that's more unlike our
calendar.
> My birthday is August 26, 1986. For me, 1986-1000=986 ... sh**, it
> should have been -2000 years to get -986! Sorry!
> As for the time the calendar starts (~10:18pm)
Okay. So, the first day of the first month of the first year of the
Areqan epoch began at 10:18 pm (is that Universal Time?) on August 26,
-986 AD (= 987 BC) "on our calendar". The "our calendar" is somewhat
ambiguous, as our current calender is the Gregorian, while the calendar
usually used for historical dates prior to 1582 AD is the Julian. But
if I assume your intent is exactly 2000 years before your birthday
according to our current idea of what constitutes a "year" - that is, a
Gregorian year - then that would mean that the above date is in the
Gregorian calendar, which corresponds to September 4, 987 BC in the
Julian.
That's our first correspondence, but using it every time we want
to calculate the current time would be more complicated than that job
needs to be. It would be better to have a known point in terms of
UNIX time_t, in the range of representable dates. In order to find
that, the next step will be to find the Areqan date of UNIX time 0,
that is, January 1st, 1970 at midnight UTC. Chances are that will not
be a convenient Areqan date, but we can then count forward to find the
UNIX time_t value of a date that is more convenient *and* within the
range of dates representable by a time_t (which 987 BC is, sadly, not).
Then we can calculate based on that.
More later.
-Mark
Reply