comparison lisp/calendar/cal-french.el @ 108435:d9d618029804

Merge from mainline.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Fri, 19 Mar 2010 12:16:57 +0000
parents 1de48da1419b
children 280c8ae2476d
comparison
equal deleted inserted replaced
108434:94a1a2dc5ac3 108435:d9d618029804
1 ;;; cal-french.el --- calendar functions for the French Revolutionary calendar 1 ;;; cal-french.el --- calendar functions for the French Revolutionary calendar
2 2
3 ;; Copyright (C) 1988, 1989, 1992, 1994, 1995, 1997, 2001, 2002, 2003, 3 ;; Copyright (C) 1988, 1989, 1992, 1994, 1995, 1997, 2001, 2002, 2003,
4 ;; 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4 ;; 2004, 2005, 2006, 2007, 2008, 2009, 2010
5 ;; Free Software Foundation, Inc.
5 6
6 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 7 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
7 ;; Maintainer: Glenn Morris <rgm@gnu.org> 8 ;; Maintainer: Glenn Morris <rgm@gnu.org>
8 ;; Keywords: calendar 9 ;; Keywords: calendar
9 ;; Human-Keywords: French Revolutionary calendar, calendar, diary 10 ;; Human-Keywords: French Revolutionary calendar, calendar, diary
38 ["Vende'miaire" "Brumaire" "Frimaire" "Nivo^se" "Pluvio^se" "Vento^se" 39 ["Vende'miaire" "Brumaire" "Frimaire" "Nivo^se" "Pluvio^se" "Vento^se"
39 "Germinal" "Flore'al" "Prairial" "Messidor" "Thermidor" "Fructidor"] 40 "Germinal" "Flore'al" "Prairial" "Messidor" "Thermidor" "Fructidor"]
40 "Array of month names in the French calendar.") 41 "Array of month names in the French calendar.")
41 42
42 (defconst calendar-french-multibyte-month-name-array 43 (defconst calendar-french-multibyte-month-name-array
43 ["Vendémiaire" "Brumaire" "Frimaire" "Nivôse" "Pluviôse" "Ventôse" 44 ["Vendémiaire" "Brumaire" "Frimaire" "Nivôse" "Pluviôse" "Ventôse"
44 "Germinal" "Floréal" "Prairial" "Messidor" "Thermidor" "Fructidor"] 45 "Germinal" "Floréal" "Prairial" "Messidor" "Thermidor" "Fructidor"]
45 "Array of multibyte month names in the French calendar.") 46 "Array of multibyte month names in the French calendar.")
46 47
47 (defconst calendar-french-day-name-array 48 (defconst calendar-french-day-name-array
48 ["Primidi" "Duodi" "Tridi" "Quartidi" "Quintidi" "Sextidi" "Septidi" 49 ["Primidi" "Duodi" "Tridi" "Quartidi" "Quintidi" "Sextidi" "Septidi"
49 "Octidi" "Nonidi" "Decadi"] 50 "Octidi" "Nonidi" "Decadi"]
53 ["de la Vertu" "du Ge'nie" "du Travail" "de la Raison" "des Re'compenses" 54 ["de la Vertu" "du Ge'nie" "du Travail" "de la Raison" "des Re'compenses"
54 "de la Re'volution"] 55 "de la Re'volution"]
55 "Array of special day names in the French calendar.") 56 "Array of special day names in the French calendar.")
56 57
57 (defconst calendar-french-multibyte-special-days-array 58 (defconst calendar-french-multibyte-special-days-array
58 ["de la Vertu" "du Génie" "du Travail" "de la Raison" "des Récompenses" 59 ["de la Vertu" "du Génie" "du Travail" "de la Raison" "des Récompenses"
59 "de la Révolution"] 60 "de la Révolution"]
60 "Array of multibyte special day names in the French calendar.") 61 "Array of multibyte special day names in the French calendar.")
61 62
62 (defun calendar-french-accents-p () 63 (defun calendar-french-accents-p ()
63 "Return non-nil if diacritical marks are available." 64 "Return non-nil if diacritical marks are available."
64 (and (or window-system 65 (and (or window-system
172 (m (calendar-extract-month french-date)) 173 (m (calendar-extract-month french-date))
173 (d (calendar-extract-day french-date))) 174 (d (calendar-extract-day french-date)))
174 (cond 175 (cond
175 ((< y 1) "") 176 ((< y 1) "")
176 ((= m 13) (format (if (calendar-french-accents-p) 177 ((= m 13) (format (if (calendar-french-accents-p)
177 "Jour %s de l'Année %d de la Révolution" 178 "Jour %s de l'Année %d de la Révolution"
178 "Jour %s de l'Anne'e %d de la Re'volution") 179 "Jour %s de l'Anne'e %d de la Re'volution")
179 (aref (calendar-french-special-days-array) (1- d)) 180 (aref (calendar-french-special-days-array) (1- d))
180 y)) 181 y))
181 (t (format 182 (t (format
182 (if (calendar-french-accents-p) 183 (if (calendar-french-accents-p)
183 "%d %s an %d de la Révolution" 184 "%d %s an %d de la Révolution"
184 "%d %s an %d de la Re'volution") 185 "%d %s an %d de la Re'volution")
185 d 186 d
186 (aref (calendar-french-month-name-array) (1- m)) 187 (aref (calendar-french-month-name-array) (1- m))
187 y))))) 188 y)))))
188 189
206 (let* ((months (calendar-french-month-name-array)) 207 (let* ((months (calendar-french-month-name-array))
207 (special-days (calendar-french-special-days-array)) 208 (special-days (calendar-french-special-days-array))
208 (year (progn 209 (year (progn
209 (calendar-read 210 (calendar-read
210 (if (calendar-french-accents-p) 211 (if (calendar-french-accents-p)
211 "Année de la Révolution (>0): " 212 "Année de la Révolution (>0): "
212 "Anne'e de la Re'volution (>0): ") 213 "Anne'e de la Re'volution (>0): ")
213 (lambda (x) (> x 0)) 214 (lambda (x) (> x 0))
214 (number-to-string 215 (number-to-string
215 (calendar-extract-year 216 (calendar-extract-year
216 (calendar-french-from-absolute 217 (calendar-french-from-absolute
262 "Date is pre-French Revolution" 263 "Date is pre-French Revolution"
263 (format "French Revolutionary date: %s" f)))) 264 (format "French Revolutionary date: %s" f))))
264 265
265 (provide 'cal-french) 266 (provide 'cal-french)
266 267
268 ;; Local Variables:
269 ;; coding: utf-8
270 ;; End:
271
267 ;; arch-tag: 7e8045a3-8609-46b5-9cde-cf40ce541cf9 272 ;; arch-tag: 7e8045a3-8609-46b5-9cde-cf40ce541cf9
268 ;;; cal-french.el ends here 273 ;;; cal-french.el ends here