Mercurial > emacs
annotate lisp/calendar/cal-china.el @ 24419:30e478cd167e
(shell-command-default-error-buffer): Renamed from
shell-command-on-region-default-error-buffer.
(shell-command-on-region): Mention in echo area when there
is some error output. Mention success or failure, too.
Accumulate multiple error outputs
going forward, with formfeed in between. Display the error buffer
when we have put something in it.
(shell-command): Add the ERROR-BUFFER argument feature.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Mon, 01 Mar 1999 03:19:32 +0000 |
parents | cbd4013c57ab |
children | 7a94f1c588c4 |
rev | line source |
---|---|
14685
496342156d13
Renamed from cal-chinese.el to avoid 14-character limitation.
Karl Heuer <kwzh@gnu.org>
parents:
14169
diff
changeset
|
1 ;;; cal-china.el --- calendar functions for the Chinese calendar. |
13053 | 2 |
20462
d179de7ad92e
Add reference to new Calendrical Calculations book.
Paul Eggert <eggert@twinsun.com>
parents:
20215
diff
changeset
|
3 ;; Copyright (C) 1995, 1997 Free Software Foundation, Inc. |
13053 | 4 |
5 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> | |
6 ;; Keywords: calendar | |
7 ;; Human-Keywords: Chinese calendar, calendar, holidays, diary | |
8 | |
9 ;; This file is part of GNU Emacs. | |
10 | |
11 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
12 ;; it under the terms of the GNU General Public License as published by | |
13 ;; the Free Software Foundation; either version 2, or (at your option) | |
14 ;; any later version. | |
15 | |
16 ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 ;; GNU General Public License for more details. | |
20 | |
21 ;; You should have received a copy of the GNU General Public License | |
14169 | 22 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
24 ;; Boston, MA 02111-1307, USA. | |
13053 | 25 |
26 ;;; Commentary: | |
27 | |
28 ;; This collection of functions implements the features of calendar.el, | |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
29 ;; diary.el, and holidays.el that deal with the Chinese calendar. The rules |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
30 ;; used for the Chinese calendar are those of Baolin Liu (see L. E. Doggett's |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
31 ;; article "Calendars" in the Explanatory Supplement to the Astronomical |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
32 ;; Almanac, second edition, 1992) for the calendar as revised at the beginning |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
33 ;; of the Qing dynasty in 1644. The nature of the astronomical calculations |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
34 ;; is such that precise calculations cannot be made without great expense in |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
35 ;; time, so that the calendars produced may not agree perfectly with published |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
36 ;; tables--but no two pairs of published tables agree perfectly either! Liu's |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
37 ;; rules produce a calendar for 2033 which is not accepted by all authorities. |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
38 ;; The date of Chinese New Year is correct from 1644-2051. |
13053 | 39 |
20462
d179de7ad92e
Add reference to new Calendrical Calculations book.
Paul Eggert <eggert@twinsun.com>
parents:
20215
diff
changeset
|
40 ;; Technical details of all the calendrical calculations can be found in |
d179de7ad92e
Add reference to new Calendrical Calculations book.
Paul Eggert <eggert@twinsun.com>
parents:
20215
diff
changeset
|
41 ;; ``Calendrical Calculations'' by Nachum Dershowitz and Edward M. Reingold, |
d179de7ad92e
Add reference to new Calendrical Calculations book.
Paul Eggert <eggert@twinsun.com>
parents:
20215
diff
changeset
|
42 ;; Cambridge University Press (1997). |
d179de7ad92e
Add reference to new Calendrical Calculations book.
Paul Eggert <eggert@twinsun.com>
parents:
20215
diff
changeset
|
43 |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
44 ;; Comments, corrections, and improvements should be sent to |
13053 | 45 ;; Edward M. Reingold Department of Computer Science |
46 ;; (217) 333-6733 University of Illinois at Urbana-Champaign | |
47 ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | |
48 ;; Urbana, Illinois 61801 | |
49 | |
50 ;;; Code: | |
51 | |
52 (require 'lunar) | |
53 | |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
54 (defvar chinese-calendar-celestial-stem |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
55 ["Jia" "Yi" "Bing" "Ding" "Wu" "Ji" "Geng" "Xin" "Ren" "Gui"]) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
56 |
13053 | 57 (defvar chinese-calendar-terrestrial-branch |
58 ["Zi" "Chou" "Yin" "Mao" "Chen" "Si" "Wu" "Wei" "Shen" "You" "Xu" "Hai"]) | |
59 | |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
60 (defcustom chinese-calendar-time-zone |
13053 | 61 '(if (< year 1928) |
62 (+ 465 (/ 40.0 60.0)) | |
63 480) | |
64 "*Number of minutes difference between local standard time for Chinese | |
65 calendar and Coordinated Universal (Greenwich) Time. Default is for Beijing. | |
66 This is an expression in `year' since it changed at 1928-01-01 00:00:00 from | |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
67 UT+7:45:40 to UT+8." |
19903
bfd7fbd77e8a
(chinese-calendar-time-zone): Likewise.
Richard M. Stallman <rms@gnu.org>
parents:
17624
diff
changeset
|
68 :type 'sexp |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
69 :group 'chinese-calendar) |
13053 | 70 |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
71 (defcustom chinese-calendar-location-name "Beijing" |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
72 "*Name of location used for calculation of Chinese calendar." |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
73 :type 'string |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
74 :group 'chinese-calendar) |
13053 | 75 |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
76 (defcustom chinese-calendar-daylight-time-offset 0 |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
77 ; The correct value is as follows, but the Chinese calendrical |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
78 ; authorities do NOT use DST in determining astronomical events: |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
79 ; 60 |
13053 | 80 "*Number of minutes difference between daylight savings and standard time |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
81 for Chinese calendar. Default is for no daylight savings time." |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
82 :type 'integer |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
83 :group 'chinese-calendar) |
13053 | 84 |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
85 (defcustom chinese-calendar-standard-time-zone-name |
13053 | 86 '(if (< year 1928) |
87 "PMT" | |
88 "CST") | |
19903
bfd7fbd77e8a
(chinese-calendar-time-zone): Likewise.
Richard M. Stallman <rms@gnu.org>
parents:
17624
diff
changeset
|
89 "*Abbreviated name of standard time zone used for Chinese calendar. |
bfd7fbd77e8a
(chinese-calendar-time-zone): Likewise.
Richard M. Stallman <rms@gnu.org>
parents:
17624
diff
changeset
|
90 This is an expression depending on `year' because it changed |
bfd7fbd77e8a
(chinese-calendar-time-zone): Likewise.
Richard M. Stallman <rms@gnu.org>
parents:
17624
diff
changeset
|
91 at 1928-01-01 00:00:00 from `PMT' to `CST'." |
bfd7fbd77e8a
(chinese-calendar-time-zone): Likewise.
Richard M. Stallman <rms@gnu.org>
parents:
17624
diff
changeset
|
92 :type 'sexp |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
93 :group 'chinese-calendar) |
13053 | 94 |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
95 (defcustom chinese-calendar-daylight-time-zone-name "CDT" |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
96 "*Abbreviated name of daylight-savings time zone used for Chinese calendar." |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
97 :type 'string |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
98 :group 'chinese-calendar) |
13053 | 99 |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
100 (defcustom chinese-calendar-daylight-savings-starts nil |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
101 ; The correct value is as follows, but the Chinese calendrical |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
102 ; authorities do NOT use DST in determining astronomical events: |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
103 ; '(cond ((< 1986 year) (calendar-nth-named-day 1 0 4 year 10)) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
104 ; ((= 1986 year) '(5 4 1986)) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
105 ; (t nil)) |
13053 | 106 "*Sexp giving the date on which daylight savings time starts for Chinese |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
107 calendar. Default is for no daylight savings time. See documentation of |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
108 `calendar-daylight-savings-starts'." |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
109 :type 'sexp |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
110 :group 'chinese-calendar) |
13053 | 111 |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
112 (defcustom chinese-calendar-daylight-savings-ends nil |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
113 ; The correct value is as follows, but the Chinese calendrical |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
114 ; authorities do NOT use DST in determining astronomical events: |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
115 ; '(if (<= 1986 year) (calendar-nth-named-day 1 0 9 year 11)) |
13053 | 116 "*Sexp giving the date on which daylight savings time ends for Chinese |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
117 calendar. Default is for no daylight savings time. See documentation of |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
118 `calendar-daylight-savings-ends'." |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
119 :type 'sexp |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
120 :group 'chinese-calendar) |
13053 | 121 |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
122 (defcustom chinese-calendar-daylight-savings-starts-time 0 |
13053 | 123 "*Number of minutes after midnight that daylight savings time starts for |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
124 Chinese calendar. Default is for no daylight savings time." |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
125 :type 'integer |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
126 :group 'chinese-calendar) |
13053 | 127 |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
128 (defcustom chinese-calendar-daylight-savings-ends-time 0 |
13053 | 129 "*Number of minutes after midnight that daylight savings time ends for |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
130 Chinese calendar. Default is for no daylight savings time." |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
131 :type 'integer |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
14685
diff
changeset
|
132 :group 'chinese-calendar) |
13053 | 133 |
134 (defun chinese-zodiac-sign-on-or-after (d) | |
135 "Absolute date of first new Zodiac sign on or after absolute date d. | |
136 The Zodiac signs begin when the sun's longitude is a multiple of 30 degrees." | |
137 (let* ((year (extract-calendar-year | |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
138 (calendar-gregorian-from-absolute d))) |
13053 | 139 (calendar-time-zone (eval chinese-calendar-time-zone)) |
140 (calendar-daylight-time-offset | |
141 chinese-calendar-daylight-time-offset) | |
142 (calendar-standard-time-zone-name | |
143 chinese-calendar-standard-time-zone-name) | |
144 (calendar-daylight-time-zone-name | |
145 chinese-calendar-daylight-time-zone-name) | |
146 (calendar-calendar-daylight-savings-starts | |
147 chinese-calendar-daylight-savings-starts) | |
148 (calendar-daylight-savings-ends | |
149 chinese-calendar-daylight-savings-ends) | |
150 (calendar-daylight-savings-starts-time | |
151 chinese-calendar-daylight-savings-starts-time) | |
152 (calendar-daylight-savings-ends-time | |
153 chinese-calendar-daylight-savings-ends-time)) | |
154 (floor | |
155 (calendar-absolute-from-astro | |
156 (solar-date-next-longitude | |
157 (calendar-astro-from-absolute d) | |
158 30))))) | |
159 | |
160 (defun chinese-new-moon-on-or-after (d) | |
161 "Absolute date of first new moon on or after absolute date d." | |
162 (let* ((year (extract-calendar-year | |
163 (calendar-gregorian-from-absolute d))) | |
164 (calendar-time-zone (eval chinese-calendar-time-zone)) | |
165 (calendar-daylight-time-offset | |
166 chinese-calendar-daylight-time-offset) | |
167 (calendar-standard-time-zone-name | |
168 chinese-calendar-standard-time-zone-name) | |
169 (calendar-daylight-time-zone-name | |
170 chinese-calendar-daylight-time-zone-name) | |
171 (calendar-calendar-daylight-savings-starts | |
172 chinese-calendar-daylight-savings-starts) | |
173 (calendar-daylight-savings-ends | |
174 chinese-calendar-daylight-savings-ends) | |
175 (calendar-daylight-savings-starts-time | |
176 chinese-calendar-daylight-savings-starts-time) | |
177 (calendar-daylight-savings-ends-time | |
178 chinese-calendar-daylight-savings-ends-time)) | |
179 (floor | |
180 (calendar-absolute-from-astro | |
181 (lunar-new-moon-on-or-after | |
182 (calendar-astro-from-absolute d)))))) | |
183 | |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
184 (defvar chinese-year-cache |
23143
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
185 '((1990 (12 726464) (1 726494) (2 726523) (3 726553) (4 726582) (5 726611) |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
186 (5.5 726641) (6 726670) (7 726699) (8 726729) (9 726758) (10 726788) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
187 (11 726818)) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
188 (1991 (12 726848) (1 726878) (2 726907) (3 726937) (4 726966) (5 726995) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
189 (6 727025) (7 727054) (8 727083) (9 727113) (10 727142) (11 727172)) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
190 (1992 (12 727202) (1 727232) (2 727261) (3 727291) (4 727321) (5 727350) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
191 (6 727379) (7 727409) (8 727438) (9 727467) (10 727497) (11 727526)) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
192 (1993 (12 727556) (1 727586) (2 727615) (3 727645) (3.5 727675) (4 727704) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
193 (5 727734) (6 727763) (7 727793) (8 727822) (9 727851) (10 727881) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
194 (11 727910)) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
195 (1994 (12 727940) (1 727969) (2 727999) (3 728029) (4 728059) (5 728088) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
196 (6 728118) (7 728147) (8 728177) (9 728206) (10 728235) (11 728265)) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
197 (1995 (12 728294) (1 728324) (2 728353) (3 728383) (4 728413) (5 728442) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
198 (6 728472) (7 728501) (8 728531) (8.5 728561) (9 728590) (10 728619) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
199 (11 728649)) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
200 (1996 (12 728678) (1 728708) (2 728737) (3 728767) (4 728796) (5 728826) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
201 (6 728856) (7 728885) (8 728915) (9 728944) (10 728974) (11 729004)) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
202 (1997 (12 729033) (1 729062) (2 729092) (3 729121) (4 729151) (5 729180) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
203 (6 729210) (7 729239) (8 729269) (9 729299) (10 729328) (11 729358)) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
204 (1998 (12 729388) (1 729417) (2 729447) (3 729476) (4 729505) (5 729535) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
205 (5.5 729564) (6 729593) (7 729623) (8 729653) (9 729682) (10 729712) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
206 (11 729742)) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
207 (1999 (12 729771) (1 729801) (2 729831) (3 729860) (4 729889) (5 729919) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
208 (6 729948) (7 729977) (8 730007) (9 730036) (10 730066) (11 730096)) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
209 (2000 (12 730126) (1 730155) (2 730185) (3 730215) (4 730244) (5 730273) |
23143
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
210 (6 730303) (7 730332) (8 730361) (9 730391) (10 730420) (11 730450)) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
211 (2001 (12 730480) (1 730509) (2 730539) (3 730569) (4 730598) (4.5 730628) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
212 (5 730657) (6 730687) (7 730716) (8 730745) (9 730775) (10 730804) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
213 (11 730834)) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
214 (2002 (12 730863) (1 730893) (2 730923) (3 730953) (4 730982) (5 731012) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
215 (6 731041) (7 731071) (8 731100) (9 731129) (10 731159) (11 731188)) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
216 (2003 (12 731218) (1 731247) (2 731277) (3 731307) (4 731336) (5 731366) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
217 (6 731396) (7 731425) (8 731455) (9 731484) (10 731513) (11 731543)) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
218 (2004 (12 731572) (1 731602) (2 731631) (2.5 731661) (3 731690) (4 731720) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
219 (5 731750) (6 731779) (7 731809) (8 731838) (9 731868) (10 731897) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
220 (11 731927)) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
221 (2005 (12 731956) (1 731986) (2 732015) (3 732045) (4 732074) (5 732104) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
222 (6 732133) (7 732163) (8 732193) (9 732222) (10 732252) (11 732281)) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
223 (2006 (12 732311) (1 732340) (2 732370) (3 732399) (4 732429) (5 732458) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
224 (6 732488) (7 732517) (7.5 732547) (8 732576) (9 732606) (10 732636) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
225 (11 732665)) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
226 (2007 (12 732695) (1 732725) (2 732754) (3 732783) (4 732813) (5 732842) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
227 (6 732871) (7 732901) (8 732930) (9 732960) (10 732990) (11 733020)) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
228 (2008 (12 733049) (1 733079) (2 733109) (3 733138) (4 733167) (5 733197) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
229 (6 733226) (7 733255) (8 733285) (9 733314) (10 733344) (11 733374)) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
230 (2009 (12 733403) (1 733433) (2 733463) (3 733493) (4 733522) (5 733551) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
231 (5.5 733581) (6 733610) (7 733639) (8 733669) (9 733698) (10 733728) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
232 (11 733757)) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
233 (2010 (12 733787) (1 733817) (2 733847) (3 733876) (4 733906) (5 733935) |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
234 (6 733965) (7 733994) (8 734023) (9 734053) (10 734082) (11 734112))) |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
235 "An assoc list of Chinese year structures as determined by `chinese-year'. |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
236 |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
237 Values are computed as needed, but to save time, the initial value consists |
23143
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
238 of the precomputed years 1990-2010. The code works just as well with this |
cbd4013c57ab
(chinese-year-cache): Change range of years from
Karl Heuer <kwzh@gnu.org>
parents:
20462
diff
changeset
|
239 set to nil initially (which is how the value for 1990-2010 was computed).") |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
240 |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
241 (defun chinese-year (y) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
242 "The structure of the Chinese year for Gregorian year Y. |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
243 The result is a list of pairs (i d), where month i begins on absolute date d, |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
244 of the Chinese months from the Chinese month following the solstice in |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
245 Gregorian year Y-1 to the Chinese month of the solstice of Gregorian year Y. |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
246 |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
247 The list is cached for further use." |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
248 (let ((list (cdr (assoc y chinese-year-cache)))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
249 (if (not list) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
250 (progn |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
251 (setq list (compute-chinese-year y)) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
252 (setq chinese-year-cache |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
253 (append chinese-year-cache (list (cons y list)))))) |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
254 list)) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
255 |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
256 (defun number-chinese-months (list start) |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
257 "Assign month numbers to the lunar months in LIST, starting with START. |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
258 Numbers are assigned sequentially, START, START+1, ..., 11, with half |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
259 numbers used for leap months. |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
260 |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
261 First month of list will never be a leap month, nor will the last." |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
262 (if list |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
263 (if (zerop (- 12 start (length list))) |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
264 ;; List is too short for a leap month |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
265 (cons (list start (car list)) |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
266 (number-chinese-months (cdr list) (1+ start))) |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
267 (cons |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
268 ;; First month |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
269 (list start (car list)) |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
270 ;; Remaining months |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
271 (if (and (cdr (cdr list));; at least two more months... |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
272 (<= (car (cdr (cdr list))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
273 (chinese-zodiac-sign-on-or-after (car (cdr list))))) |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
274 ;; Next month is a leap month |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
275 (cons (list (+ start 0.5) (car (cdr list))) |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
276 (number-chinese-months (cdr (cdr list)) (1+ start))) |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
277 ;; Next month is not a leap month |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
278 (number-chinese-months (cdr list) (1+ start))))))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
279 |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
280 (defun chinese-month-list (start end) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
281 "List of starting dates of Chinese months from START to END." |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
282 (if (<= start end) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
283 (let ((new-moon (chinese-new-moon-on-or-after start))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
284 (if (<= new-moon end) |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
285 (cons new-moon |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
286 (chinese-month-list (1+ new-moon) end)))))) |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
287 |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
288 (defun compute-chinese-year (y) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
289 "Compute the structure of the Chinese year for Gregorian year Y. |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
290 The result is a list of pairs (i d), where month i begins on absolute date d, |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
291 of the Chinese months from the Chinese month following the solstice in |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
292 Gregorian year Y-1 to the Chinese month of the solstice of Gregorian year Y." |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
293 (let* ((next-solstice (chinese-zodiac-sign-on-or-after |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
294 (calendar-absolute-from-gregorian |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
295 (list 12 15 y)))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
296 (list (chinese-month-list (1+ (chinese-zodiac-sign-on-or-after |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
297 (calendar-absolute-from-gregorian |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
298 (list 12 15 (1- y))))) |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
299 next-solstice)) |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
300 (next-sign (chinese-zodiac-sign-on-or-after (car list)))) |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
301 (if (= (length list) 12) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
302 ;; No room for a leap month, just number them 12, 1, 2, ..., 11 |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
303 (cons (list 12 (car list)) |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
304 (number-chinese-months (cdr list) 1)) |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
305 ;; Now we can assign numbers to the list for y |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
306 ;; The first month or two are special |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
307 (if (or (> (car list) next-sign) (>= next-sign (car (cdr list)))) |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
308 ;; First month on list is a leap month, second is not |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
309 (append (list (list 11.5 (car list)) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
310 (list 12 (car (cdr list)))) |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
311 (number-chinese-months (cdr (cdr list)) 1)) |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
312 ;; First month on list is not a leap month |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
313 (append (list (list 12 (car list))) |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
314 (if (>= (chinese-zodiac-sign-on-or-after (car (cdr list))) |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
315 (car (cdr (cdr list)))) |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
316 ;; Second month on list is a leap month |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
317 (cons (list 12.5 (car (cdr list))) |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
318 (number-chinese-months (cdr (cdr list)) 1)) |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
319 ;; Second month on list is not a leap month |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
320 (number-chinese-months (cdr list) 1))))))) |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
321 |
13053 | 322 (defun calendar-absolute-from-chinese (date) |
323 "The number of days elapsed between the Gregorian date 12/31/1 BC and DATE. | |
324 The Gregorian date Sunday, December 31, 1 BC is imaginary." | |
325 (let* ((cycle (car date)) | |
326 (year (car (cdr date))) | |
327 (month (car (cdr (cdr date)))) | |
328 (day (car (cdr (cdr (cdr date))))) | |
329 (g-year (+ (* (1- cycle) 60);; years in prior cycles | |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
330 (1- year) ;; prior years this cycle |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
331 -2636))) ;; years before absolute date 0 |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
332 (+ (1- day);; prior days this month |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
333 (car |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
334 (cdr ;; absolute date of start of this month |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
335 (assoc month (append (memq (assoc 1 (chinese-year g-year)) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
336 (chinese-year g-year)) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
337 (chinese-year (1+ g-year))))))))) |
13053 | 338 |
339 (defun calendar-chinese-from-absolute (date) | |
340 "Compute Chinese date (cycle year month day) corresponding to absolute DATE. | |
341 The absolute date is the number of days elapsed since the (imaginary) | |
342 Gregorian date Sunday, December 31, 1 BC." | |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
343 (let* ((g-year (extract-calendar-year |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
344 (calendar-gregorian-from-absolute date))) |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
345 (c-year (+ g-year 2695)) |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
346 (list (append (chinese-year (1- g-year)) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
347 (chinese-year g-year) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
348 (chinese-year (1+ g-year))))) |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
349 (while (<= (car (cdr (car (cdr list)))) date) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
350 ;; the first month on the list is in Chinese year c-year |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
351 ;; date is on or after start of second month on list... |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
352 (if (= 1 (car (car (cdr list)))) |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
353 ;; second month on list is a new Chinese year |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
354 (setq c-year (1+ c-year))) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
355 ;; ...so first month on list is of no interest |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
356 (setq list (cdr list))) |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
357 (list (/ (1- c-year) 60) |
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
358 (calendar-mod c-year 60) |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
359 (car (car list)) |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
360 (1+ (- date (car (cdr (car list)))))))) |
13053 | 361 |
362 (defun holiday-chinese-new-year () | |
363 "Date of Chinese New Year." | |
364 (let ((m displayed-month) | |
365 (y displayed-year)) | |
366 (increment-calendar-month m y 1) | |
367 (if (< m 5) | |
368 (let ((chinese-new-year | |
369 (calendar-gregorian-from-absolute | |
13574
c5d4269e17d9
Minor fixes.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13306
diff
changeset
|
370 (car (cdr (assoc 1 (chinese-year y))))))) |
13053 | 371 (if (calendar-date-is-visible-p chinese-new-year) |
13306
77d8e407592e
Fix the way the sexagisimal names are calculated.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13284
diff
changeset
|
372 (list |
77d8e407592e
Fix the way the sexagisimal names are calculated.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13284
diff
changeset
|
373 (list chinese-new-year |
77d8e407592e
Fix the way the sexagisimal names are calculated.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13284
diff
changeset
|
374 (format "Chinese New Year (%s)" |
13675
280cee006df8
(calendar-chinese-sexagesimal-name): Renamed from
Paul Eggert <eggert@twinsun.com>
parents:
13574
diff
changeset
|
375 (calendar-chinese-sexagesimal-name (+ y 57)))))))))) |
13053 | 376 |
377 (defun calendar-chinese-date-string (&optional date) | |
378 "String of Chinese date of Gregorian DATE. | |
379 Defaults to today's date if DATE is not given." | |
380 (let* ((a-date (calendar-absolute-from-gregorian | |
381 (or date (calendar-current-date)))) | |
382 (c-date (calendar-chinese-from-absolute a-date)) | |
383 (cycle (car c-date)) | |
384 (year (car (cdr c-date))) | |
385 (month (car (cdr (cdr c-date)))) | |
386 (day (car (cdr (cdr (cdr c-date))))) | |
387 (this-month (calendar-absolute-from-chinese | |
388 (list cycle year month 1))) | |
389 (next-month (calendar-absolute-from-chinese | |
13283
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
390 (list (if (= year 60) (1+ cycle) cycle) |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
391 (if (= (floor month) 12) (1+ year) year) |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
392 (calendar-mod (1+ (floor month)) 12) |
f8658d1ca0f2
Various fixes and simplifications.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13281
diff
changeset
|
393 1))) |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
394 (m-cycle (% (+ (* year 5) (floor month)) 60))) |
13306
77d8e407592e
Fix the way the sexagisimal names are calculated.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13284
diff
changeset
|
395 (format "Cycle %s, year %s (%s), %smonth %s%s, day %s (%s)" |
13053 | 396 cycle |
13675
280cee006df8
(calendar-chinese-sexagesimal-name): Renamed from
Paul Eggert <eggert@twinsun.com>
parents:
13574
diff
changeset
|
397 year (calendar-chinese-sexagesimal-name year) |
13053 | 398 (if (not (integerp month)) |
399 "second " | |
400 (if (< 30 (- next-month this-month)) | |
401 "first " | |
402 "")) | |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
403 (floor month) |
13306
77d8e407592e
Fix the way the sexagisimal names are calculated.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13284
diff
changeset
|
404 (if (integerp month) |
13675
280cee006df8
(calendar-chinese-sexagesimal-name): Renamed from
Paul Eggert <eggert@twinsun.com>
parents:
13574
diff
changeset
|
405 (format " (%s)" (calendar-chinese-sexagesimal-name |
20215
13b173216a3d
(calendar-chinese-date-string): Fix month name.
Karl Heuer <kwzh@gnu.org>
parents:
19903
diff
changeset
|
406 (+ (* 12 year) month 50))) |
13306
77d8e407592e
Fix the way the sexagisimal names are calculated.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13284
diff
changeset
|
407 "") |
13675
280cee006df8
(calendar-chinese-sexagesimal-name): Renamed from
Paul Eggert <eggert@twinsun.com>
parents:
13574
diff
changeset
|
408 day (calendar-chinese-sexagesimal-name (+ a-date 15))))) |
13306
77d8e407592e
Fix the way the sexagisimal names are calculated.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13284
diff
changeset
|
409 |
13675
280cee006df8
(calendar-chinese-sexagesimal-name): Renamed from
Paul Eggert <eggert@twinsun.com>
parents:
13574
diff
changeset
|
410 (defun calendar-chinese-sexagesimal-name (n) |
280cee006df8
(calendar-chinese-sexagesimal-name): Renamed from
Paul Eggert <eggert@twinsun.com>
parents:
13574
diff
changeset
|
411 "The N-th name of the Chinese sexagesimal cycle. |
13306
77d8e407592e
Fix the way the sexagisimal names are calculated.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13284
diff
changeset
|
412 N congruent to 1 gives the first name, N congruent to 2 gives the second name, |
77d8e407592e
Fix the way the sexagisimal names are calculated.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13284
diff
changeset
|
413 ..., N congruent to 60 gives the sixtieth name." |
77d8e407592e
Fix the way the sexagisimal names are calculated.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13284
diff
changeset
|
414 (format "%s-%s" |
77d8e407592e
Fix the way the sexagisimal names are calculated.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13284
diff
changeset
|
415 (aref chinese-calendar-celestial-stem (% (1- n) 10)) |
77d8e407592e
Fix the way the sexagisimal names are calculated.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13284
diff
changeset
|
416 (aref chinese-calendar-terrestrial-branch (% (1- n) 12)))) |
13053 | 417 |
418 (defun calendar-print-chinese-date () | |
419 "Show the Chinese date equivalents of date." | |
420 (interactive) | |
421 (message "Computing Chinese date...") | |
422 (message "Chinese date: %s" | |
423 (calendar-chinese-date-string (calendar-cursor-to-date t)))) | |
424 | |
425 (defun calendar-goto-chinese-date (date &optional noecho) | |
426 "Move cursor to Chinese date DATE. | |
427 Echo Chinese date unless NOECHO is t." | |
428 (interactive | |
429 (let* ((c (calendar-chinese-from-absolute | |
430 (calendar-absolute-from-gregorian | |
431 (calendar-current-date)))) | |
432 (cycle (calendar-read | |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
433 "Chinese calendar cycle number (>44): " |
13053 | 434 '(lambda (x) (> x 44)) |
435 (int-to-string (car c)))) | |
436 (year (calendar-read | |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
437 "Year in Chinese cycle (1..60): " |
13053 | 438 '(lambda (x) (and (<= 1 x) (<= x 60))) |
439 (int-to-string (car (cdr c))))) | |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
440 (month-list (make-chinese-month-assoc-list |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
441 (chinese-months cycle year))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
442 (month (cdr (assoc |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
443 (completing-read "Chinese calendar month: " |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
444 month-list nil t) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
445 month-list))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
446 (last (if (= month |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
447 (car (cdr (cdr |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
448 (calendar-chinese-from-absolute |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
449 (+ 29 |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
450 (calendar-absolute-from-chinese |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
451 (list cycle year month 1)))))))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
452 30 |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
453 29)) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
454 (day (calendar-read |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
455 (format "Chinese calendar day (1-%d): " last) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
456 '(lambda (x) (and (<= 1 x) (<= x last)))))) |
13053 | 457 (list (list cycle year month day)))) |
458 (calendar-goto-date (calendar-gregorian-from-absolute | |
459 (calendar-absolute-from-chinese date))) | |
460 (or noecho (calendar-print-chinese-date))) | |
461 | |
13281
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
462 (defun chinese-months (c y) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
463 "A list of the months in cycle C, year Y of the Chinese calendar." |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
464 (let* ((l (memq 1 (append |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
465 (mapcar '(lambda (x) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
466 (car x)) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
467 (chinese-year (extract-calendar-year |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
468 (calendar-gregorian-from-absolute |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
469 (calendar-absolute-from-chinese |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
470 (list c y 1 1)))))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
471 (mapcar '(lambda (x) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
472 (if (> (car x) 11) (car x))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
473 (chinese-year (extract-calendar-year |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
474 (calendar-gregorian-from-absolute |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
475 (calendar-absolute-from-chinese |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
476 (list (if (= y 60) (1+ c) c) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
477 (if (= y 60) 1 y) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
478 1 1)))))))))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
479 l)) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
480 |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
481 (defun make-chinese-month-assoc-list (l) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
482 "Make list of months L into an assoc list." |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
483 (if (and l (car l)) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
484 (if (and (cdr l) (car (cdr l))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
485 (if (= (car l) (floor (car (cdr l)))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
486 (append |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
487 (list (cons (format "%s (first)" (car l)) (car l)) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
488 (cons (format "%s (second)" (car l)) (car (cdr l)))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
489 (make-chinese-month-assoc-list (cdr (cdr l)))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
490 (append |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
491 (list (cons (int-to-string (car l)) (car l))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
492 (make-chinese-month-assoc-list (cdr l)))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
493 (list (cons (int-to-string (car l)) (car l)))))) |
510f946d1e22
Completely rewritten!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents:
13053
diff
changeset
|
494 |
13053 | 495 (defun diary-chinese-date () |
496 "Chinese calendar equivalent of date diary entry." | |
497 (format "Chinese date: %s" (calendar-chinese-date-string date))) | |
498 | |
14685
496342156d13
Renamed from cal-chinese.el to avoid 14-character limitation.
Karl Heuer <kwzh@gnu.org>
parents:
14169
diff
changeset
|
499 (provide 'cal-china) |
13053 | 500 |
14685
496342156d13
Renamed from cal-chinese.el to avoid 14-character limitation.
Karl Heuer <kwzh@gnu.org>
parents:
14169
diff
changeset
|
501 ;;; cal-china.el ends here |