]> code.delx.au - gnu-emacs/blobdiff - lisp/calendar/cal-china.el
(appt-display-format): Default value must be
[gnu-emacs] / lisp / calendar / cal-china.el
index dce796a55aa58011c2a663e170d211016f4092ae..5cdaa5092aa861372f41385630f9d3cc9a0460f7 100644 (file)
@@ -1,8 +1,10 @@
-;;; cal-china.el --- calendar functions for the Chinese calendar.
+;;; cal-china.el --- calendar functions for the Chinese calendar
 
-;; Copyright (C) 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006
+;;   Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
+;; Maintainer: Glenn Morris <rgm@gnu.org>
 ;; Keywords: calendar
 ;; Human-Keywords: Chinese calendar, calendar, holidays, diary
 
@@ -20,8 +22,8 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
 ;; rules produce a calendar for 2033 which is not accepted by all authorities.
 ;; The date of Chinese New Year is correct from 1644-2051.
 
+;; Technical details of all the calendrical calculations can be found in
+;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold
+;; and Nachum Dershowitz, Cambridge University Press (2001).
+
 ;; Comments, corrections, and improvements should be sent to
 ;;  Edward M. Reingold               Department of Computer Science
 ;;  (217) 333-6733                   University of Illinois at Urbana-Champaign
 
 ;;; Code:
 
+(defvar date)
+(defvar displayed-month)
+(defvar displayed-year)
+
 (require 'lunar)
 
 (defvar chinese-calendar-celestial-stem
@@ -53,7 +63,7 @@
 (defvar chinese-calendar-terrestrial-branch
   ["Zi" "Chou" "Yin" "Mao" "Chen" "Si" "Wu" "Wei" "Shen" "You" "Xu" "Hai"])
 
-(defcustom chinese-calendar-time-zone 
+(defcustom chinese-calendar-time-zone
   '(if (< year 1928)
        (+ 465 (/ 40.0 60.0))
      480)
@@ -178,9 +188,7 @@ The Zodiac signs begin when the sun's longitude is a multiple of 30 degrees."
        (calendar-astro-from-absolute d))))))
 
 (defvar chinese-year-cache
-  '((1989 (12 726110) (1 726139) (2 726169) (3 726198) (4 726227) (5 726257)
-          (6 726286) (7 726316) (8 726345) (9 726375) (10 726404) (11 726434))
-    (1990 (12 726464) (1 726494) (2 726523) (3 726553) (4 726582) (5 726611)
+  '((1990 (12 726464) (1 726494) (2 726523) (3 726553) (4 726582) (5 726611)
           (5.5 726641) (6 726670) (7 726699) (8 726729) (9 726758) (10 726788)
           (11 726818))
     (1991 (12 726848) (1 726878) (2 726907) (3 726937) (4 726966) (5 726995)
@@ -205,12 +213,36 @@ The Zodiac signs begin when the sun's longitude is a multiple of 30 degrees."
     (1999 (12 729771) (1 729801) (2 729831) (3 729860) (4 729889) (5 729919)
           (6 729948) (7 729977) (8 730007) (9 730036) (10 730066) (11 730096))
     (2000 (12 730126) (1 730155) (2 730185) (3 730215) (4 730244) (5 730273)
-          (6 730303) (7 730332) (8 730361) (9 730391) (10 730420) (11 730450)))
+          (6 730303) (7 730332) (8 730361) (9 730391) (10 730420) (11 730450))
+    (2001 (12 730480) (1 730509) (2 730539) (3 730569) (4 730598) (4.5 730628)
+          (5 730657) (6 730687) (7 730716) (8 730745) (9 730775) (10 730804)
+          (11 730834))
+    (2002 (12 730863) (1 730893) (2 730923) (3 730953) (4 730982) (5 731012)
+          (6 731041) (7 731071) (8 731100) (9 731129) (10 731159) (11 731188))
+    (2003 (12 731218) (1 731247) (2 731277) (3 731307) (4 731336) (5 731366)
+          (6 731396) (7 731425) (8 731455) (9 731484) (10 731513) (11 731543))
+    (2004 (12 731572) (1 731602) (2 731631) (2.5 731661) (3 731690) (4 731720)
+          (5 731750) (6 731779) (7 731809) (8 731838) (9 731868) (10 731897)
+          (11 731927))
+    (2005 (12 731956) (1 731986) (2 732015) (3 732045) (4 732074) (5 732104)
+          (6 732133) (7 732163) (8 732193) (9 732222) (10 732252) (11 732281))
+    (2006 (12 732311) (1 732340) (2 732370) (3 732399) (4 732429) (5 732458)
+          (6 732488) (7 732517) (7.5 732547) (8 732576) (9 732606) (10 732636)
+          (11 732665))
+    (2007 (12 732695) (1 732725) (2 732754) (3 732783) (4 732813) (5 732842)
+          (6 732871) (7 732901) (8 732930) (9 732960) (10 732990) (11 733020))
+    (2008 (12 733049) (1 733079) (2 733109) (3 733138) (4 733167) (5 733197)
+          (6 733226) (7 733255) (8 733285) (9 733314) (10 733344) (11 733374))
+    (2009 (12 733403) (1 733433) (2 733463) (3 733493) (4 733522) (5 733551)
+          (5.5 733581) (6 733610) (7 733639) (8 733669) (9 733698) (10 733728)
+          (11 733757))
+    (2010 (12 733787) (1 733817) (2 733847) (3 733876) (4 733906) (5 733935)
+          (6 733965) (7 733994) (8 734023) (9 734053) (10 734082) (11 734112)))
   "An assoc list of Chinese year structures as determined by `chinese-year'.
 
 Values are computed as needed, but to save time, the initial value consists
-of the precomputed years 1989-2000.  The code works just as well with this
-set to nil initially (which is how the value for 1989-2000 was computed).")
+of the precomputed years 1990-2010.  The code works just as well with this
+set to nil initially (which is how the value for 1990-2010 was computed).")
 
 (defun chinese-year (y)
   "The structure of the Chinese year for Gregorian year Y.
@@ -377,7 +409,7 @@ Defaults to today's date if DATE is not given."
             (floor month)
             (if (integerp month)
                 (format " (%s)" (calendar-chinese-sexagesimal-name
-                                 (+ (* 5 year) month 44)))
+                                 (+ (* 12 year) month 50)))
               "")
             day (calendar-chinese-sexagesimal-name (+ a-date 15)))))
 
@@ -472,4 +504,5 @@ Echo Chinese date unless NOECHO is t."
 
 (provide 'cal-china)
 
+;;; arch-tag: 7e5b7e0d-676c-47e3-8696-93e7ea0ab644
 ;;; cal-china.el ends here