     Although one can never be sure of what will happen at some future
time, there is strong historical precedent for presuming that the
present Gregorian calendar will still be in effect by the year 2000.
Since we also hope that c-client will still be around by then, we have
chosen to adhere to these precedents.
 
     The purpose of a calendar is to reckon time in advance, to show
how many days have to elapse until a certain event takes place in the
future, such as the harvest or the release of a new version of Pine.
The earliest calendars, naturally, were crude and tended to be based
upon the seasons or the lunar cycle.
 
     The calendar of the Assyrians, for example, was based upon the
phases of the moon.  They knew that a lunation (the time from one full
moon to the next) was 29 1/2 days long, so their lunar year had a
duration of 354 days.  This fell short of the solar year by about 11
days.  (The exact time for the solar year is approximately 365 days, 5
hours, 48 minutes, and 46 seconds.)  After 3 years, such a lunar
calendar would be off by a whole month, so the Assyrians added an
extra month from time to time to keep their calendar in
synchronization with the seasons.
 
     The best approximation that was possible in antiquity was a
19-year period, with 7 of these 19 years having 13 months (leap
months).  This scheme was adopted as the basis for the religious
calendar used by the Hebrews.  (The Arabs also used this calendar until
Mohammed forbade shifting from 12 months to 13 months.)
 
     When Rome emerged as a world power, the difficulties of making a
calendar were well known, but the Romans complicated their lives
because of their superstition that even numbers were unlucky.  Hence
their months were 29 or 31 days long, with the exception of February,
which had 28 days.  Every second year, the Roman calendar included an
extra month called Mercedonius of 22 or 23 days to keep up with the
solar year.

     Even this algorithm was very poor, so that in 45 BC, Caesar,
advised by the astronomer Sosigenes, ordered a sweeping reform.  By
imperial decree, one year was made 445 days long to bring the calendar
back in step with the seasons.  The new calendar, similar to the one
we now use was called the Julian calendar (named after Julius Caesar).
Its months were 30 or 31 days in length and every fourth year was
made a leap year (having 366 days).  Caesar also decreed that the year
would start with the first of January, not the vernal equinox in late
March.
 
     Caesar's year was 11 1/2 minutes short of the calculations
recommended by Sosigenes and eventually the date of the vernal equinox
began to drift.  Roger Bacon became alarmed and sent a note to Pope
Clement IV, who apparently was not impressed.  Pope Sixtus IV later
became convinced that another reform was needed and called the German
astronomer, Regiomontanus, to Rome to advise him.  Unfortunately,
Regiomontanus died of the plague shortly thereafter and the plans died
as well.
 
     In 1545, the Council of Trent authorized Pope Gregory XIII to
reform the calendar once more.  Most of the mathematical work was done
by Father Christopher Clavius, S.J.  The immediate correction that was
adopted was that Thursday, October 4, 1582 was to be the last day of
the Julian calendar.  The next day was Friday, with the date of
October 15.  For long range accuracy, a formula suggested by the
Vatican librarian Aloysius Giglio was adopted.  It said that every
fourth year is a leap year except for century years that are not
divisible by 400.  Thus 1700, 1800 and 1900 would not be leap years,
but 2000 would be a leap year since 2000 is divisible by 400.  This
rule eliminates 3 leap years every 4 centuries, making the calendar
sufficiently correct for most ordinary purposes.  This calendar is
known as the Gregorian calendar and is the one that we now use today.

     It is interesting to note that in 1582, all the Protestant
princes ignored the papal decree and so many countries continued to
use the Julian calendar until either 1698 or 1752.  In Russia, it
needed the revolution to introduce the Gregorian calendar in 1918.
 
     Despite the great accuracy of the Gregorian calendar, it still
falls behind very slightly every few years.  The most serious problem
is that the earth's rotation is slowing gradually.  If you are very
concerned about this problem, we suggest that you tune in short wave
radio station WWV or the Global Positioning System, which broadcasts
official time signals for use in the United States.  About once every
3 years, they declare a leap second at which time you should be
careful to adjust your system clock.  If you have trouble picking up
their signals, we suggest you purchase an atomic clock (not part of
the IMAP toolkit).

     Another problem is that the Gregorian calendar represents a year
of 365.2425 days, whereas the actual time taken for the earth to
rotate around the Sun is 365.2422 days.  Thus, the Gregorian calendar
is actually 25.92 seconds slow each year, resulting in the calendar
being one day behind every 3,333 1/3 years.

     Consequently, the Gregorian calendar has been modified with a
further rule, which is that years evenly divisible by 4000 are not
leap years.  Thus, the year 4000 will not be a leap year.

     The modified Gregorian calendar represents a year of 365.24225
days.  Thus, the modified Gregorian calendar is actually 4.32 seconds
slow each year, resulting in the calendar being one day slow every
20,000 years.

     There is code in c-client to support the modified Gregorian
calendar, although it is currently disabled.  Sometime in the next
2000 years, someone will need to enable this code so that c-client is
Y4K compiliant.  Then, 18,000 years from now, someone will have to
tear into c-client's code to fix the Y20K bug.

     The Eastern Orthodox church in 1923 established its own rules to
correct the Julian calendar.  In their calendar, century years modulo
900 must result in value of 200 or 600 to be considered a leap year.
Both the Orthodox and Gregorian calendar agree that the years 2000 and
2400 will be leap years, and the years 1900, 2100, 2200, 2300, 2500,
2600, 2700 are not.  However, the year 2800 will be a leap year in the
Gregorian calendar but not in the Orthodox calendar; similarly, the
year 2900 will be a leap year in the Orthodox calendar but not in the
Gregorian calendar.  Both calendars will agree that 3000 and
3100 are leap years, but will disagree again in 3200 and 3300.

     There is code in c-client to support the Orthodox
calendar.  It can be enabled by adding -DUSEORTHODOXCALENDAR=1 to the
c-client CFLAGS, e.g.
	make xxx EXTRACFLAGS="-DUSEORTHODOXCALENDAR=1"

     The Orthodox calendar represents a year of 365.24222222... days.
Thus, the Orthodox calendar is actually 1.91 seconds slow each year,
resulting in the calendar being one day slow every 45,000 years.  The
Eastern Orthodox church has not yet made any statements on how the
Y45K bug will be fixed.

     The effect of leap seconds also needs to be considered when
looking at the Y20K and Y45K problems.  Leap seconds put the clock
back in line with the Earth's rotation, whereas leap years put the
calendar back in line with the Earth's revolution.  Since leap seconds
slow down the clock (and hence the calendar), they actually bring the
day of reckoning for the Gregorian and Orthodox calendars sooner.

ACKNOWLEDGEMENT:

The original version is from an old Digital Equipment Corporation SPR
answer for VMS.  Modifications for c-client, and information about the
updated Gregorian and Orthodox calendars added by Mark Crispin.
