calendar.txt
上传用户:ycwykj01
上传日期:2007-01-04
资源大小:1819k
文件大小:7k
源码类别:

网络编程

开发平台:

Unix_Linux

  1.      Although one can never be sure of what will happen at some future
  2. time, there is strong historical precedent for presuming that the
  3. present Gregorian calendar will still be in effect by the year 2000.
  4. Since we also hope that c-client will still be around by then, we have
  5. chosen to adhere to these precedents.
  6.  
  7.      The purpose of a calendar is to reckon time in advance, to show
  8. how many days have to elapse until a certain event takes place in the
  9. future, such as the harvest or the release of a new version of Pine.
  10. The earliest calendars, naturally, were crude and tended to be based
  11. upon the seasons or the lunar cycle.
  12.  
  13.      The calendar of the Assyrians, for example, was based upon the
  14. phases of the moon.  They knew that a lunation (the time from one full
  15. moon to the next) was 29 1/2 days long, so their lunar year had a
  16. duration of 354 days.  This fell short of the solar year by about 11
  17. days.  (The exact time for the solar year is approximately 365 days, 5
  18. hours, 48 minutes, and 46 seconds.)  After 3 years, such a lunar
  19. calendar would be off by a whole month, so the Assyrians added an
  20. extra month from time to time to keep their calendar in
  21. synchronization with the seasons.
  22.  
  23.      The best approximation that was possible in antiquity was a
  24. 19-year period, with 7 of these 19 years having 13 months (leap
  25. months).  This scheme was adopted as the basis for the religious
  26. calendar used by the Hebrews.  (The Arabs also used this calendar until
  27. Mohammed forbade shifting from 12 months to 13 months.)
  28.  
  29.      When Rome emerged as a world power, the difficulties of making a
  30. calendar were well known, but the Romans complicated their lives
  31. because of their superstition that even numbers were unlucky.  Hence
  32. their months were 29 or 31 days long, with the exception of February,
  33. which had 28 days.  Every second year, the Roman calendar included an
  34. extra month called Mercedonius of 22 or 23 days to keep up with the
  35. solar year.
  36.      Even this algorithm was very poor, so that in 45 BC, Caesar,
  37. advised by the astronomer Sosigenes, ordered a sweeping reform.  By
  38. imperial decree, one year was made 445 days long to bring the calendar
  39. back in step with the seasons.  The new calendar, similar to the one
  40. we now use was called the Julian calendar (named after Julius Caesar).
  41. Its months were 30 or 31 days in length and every fourth year was
  42. made a leap year (having 366 days).  Caesar also decreed that the year
  43. would start with the first of January, not the vernal equinox in late
  44. March.
  45.  
  46.      Caesar's year was 11 1/2 minutes short of the calculations
  47. recommended by Sosigenes and eventually the date of the vernal equinox
  48. began to drift.  Roger Bacon became alarmed and sent a note to Pope
  49. Clement IV, who apparently was not impressed.  Pope Sixtus IV later
  50. became convinced that another reform was needed and called the German
  51. astronomer, Regiomontanus, to Rome to advise him.  Unfortunately,
  52. Regiomontanus died of the plague shortly thereafter and the plans died
  53. as well.
  54.  
  55.      In 1545, the Council of Trent authorized Pope Gregory XIII to
  56. reform the calendar once more.  Most of the mathematical work was done
  57. by Father Christopher Clavius, S.J.  The immediate correction that was
  58. adopted was that Thursday, October 4, 1582 was to be the last day of
  59. the Julian calendar.  The next day was Friday, with the date of
  60. October 15.  For long range accuracy, a formula suggested by the
  61. Vatican librarian Aloysius Giglio was adopted.  It said that every
  62. fourth year is a leap year except for century years that are not
  63. divisible by 400.  Thus 1700, 1800 and 1900 would not be leap years,
  64. but 2000 would be a leap year since 2000 is divisible by 400.  This
  65. rule eliminates 3 leap years every 4 centuries, making the calendar
  66. sufficiently correct for most ordinary purposes.  This calendar is
  67. known as the Gregorian calendar and is the one that we now use today.
  68.      It is interesting to note that in 1582, all the Protestant
  69. princes ignored the papal decree and so many countries continued to
  70. use the Julian calendar until either 1698 or 1752.  In Russia, it
  71. needed the revolution to introduce the Gregorian calendar in 1918.
  72.  
  73.      Despite the great accuracy of the Gregorian calendar, it still
  74. falls behind very slightly every few years.  The most serious problem
  75. is that the earth's rotation is slowing gradually.  If you are very
  76. concerned about this problem, we suggest that you tune in short wave
  77. radio station WWV or the Global Positioning System, which broadcasts
  78. official time signals for use in the United States.  About once every
  79. 3 years, they declare a leap second at which time you should be
  80. careful to adjust your system clock.  If you have trouble picking up
  81. their signals, we suggest you purchase an atomic clock (not part of
  82. the IMAP toolkit).
  83.      Another problem is that the Gregorian calendar represents a year
  84. of 365.2425 days, whereas the actual time taken for the earth to
  85. rotate around the Sun is 365.2422 days.  Thus, the Gregorian calendar
  86. is actually 25.92 seconds slow each year, resulting in the calendar
  87. being one day behind every 3,333 1/3 years.
  88.      Consequently, the Gregorian calendar has been modified with a
  89. further rule, which is that years evenly divisible by 4000 are not
  90. leap years.  Thus, the year 4000 will not be a leap year.
  91.      The modified Gregorian calendar represents a year of 365.24225
  92. days.  Thus, the modified Gregorian calendar is actually 4.32 seconds
  93. slow each year, resulting in the calendar being one day slow every
  94. 20,000 years.
  95.      There is code in c-client to support the modified Gregorian
  96. calendar, although it is currently disabled.  Sometime in the next
  97. 2000 years, someone will need to enable this code so that c-client is
  98. Y4K compiliant.  Then, 18,000 years from now, someone will have to
  99. tear into c-client's code to fix the Y20K bug.
  100.      The Eastern Orthodox church in 1923 established its own rules to
  101. correct the Julian calendar.  In their calendar, century years modulo
  102. 900 must result in value of 200 or 600 to be considered a leap year.
  103. Both the Orthodox and Gregorian calendar agree that the years 2000 and
  104. 2400 will be leap years, and the years 1900, 2100, 2200, 2300, 2500,
  105. 2600, 2700 are not.  However, the year 2800 will be a leap year in the
  106. Gregorian calendar but not in the Orthodox calendar; similarly, the
  107. year 2900 will be a leap year in the Orthodox calendar but not in the
  108. Gregorian calendar.  Both calendars will agree that 3000 and
  109. 3100 are leap years, but will disagree again in 3200 and 3300.
  110.      There is code in c-client to support the Orthodox
  111. calendar.  It can be enabled by adding -DUSEORTHODOXCALENDAR=1 to the
  112. c-client CFLAGS, e.g.
  113. make xxx EXTRACFLAGS="-DUSEORTHODOXCALENDAR=1"
  114.      The Orthodox calendar represents a year of 365.24222222... days.
  115. Thus, the Orthodox calendar is actually 1.91 seconds slow each year,
  116. resulting in the calendar being one day slow every 45,000 years.  The
  117. Eastern Orthodox church has not yet made any statements on how the
  118. Y45K bug will be fixed.
  119.      The effect of leap seconds also needs to be considered when
  120. looking at the Y20K and Y45K problems.  Leap seconds put the clock
  121. back in line with the Earth's rotation, whereas leap years put the
  122. calendar back in line with the Earth's revolution.  Since leap seconds
  123. slow down the clock (and hence the calendar), they actually bring the
  124. day of reckoning for the Gregorian and Orthodox calendars sooner.
  125. ACKNOWLEDGEMENT:
  126. The original version is from an old Digital Equipment Corporation SPR
  127. answer for VMS.  Modifications for c-client, and information about the
  128. updated Gregorian and Orthodox calendars added by Mark Crispin.