J'essaie d'implémenter les termes solaires dans mon .emacs
afin que mes "vacances" affichent l'heure à laquelle la longitude solaire croise chaque multiple de 15 degrés. Voici le snipplet pertinent.Pourquoi Emacs se plaint de void-variable display-year dans mon fichier .emacs?
(defun next-solar-term-date (d)
(solar-date-next-longitude d 15))
(defconst solar-term-names
["moderate cold" "severe cold" "spring commerces"
"rain water" "insects awaken" "vernal equinox"
"Ching Ming" "corn rain" "summer commerces"
"corn forms" "corn on ear" "summer solstice"
"minor heat" "great heat" "autumn commerces"
"end of heat" "white dew" "autumnal equinox"
"cold dew" "frost" "winter commerces"
"light snow" "heavy snow" "winter solstice"])
(setq solar-terms-holidays
(let* ((k 0) (mylist nil))
(dotimes (k 4);k=season
(let* ((j 0))
(dotimes (j 5);no equinoxes/solstices --- use solar for them
(let* ((i (+ j (* 6 k)))
(month (+ 1 (/ i 2)))
(astronextdate (next-solar-term-date
(calendar-astro-from-absolute
(+ (* 15 i)
(calendar-absolute-from-gregorian
(list 1 1 displayed-year))))))
(s (aref solar-term-names i))
(absnextdate (calendar-absolute-from-astro
astronextdate))
(gregnextdate (calendar-gregorian-from-absolute
(floor absnextdate)))
(compt (* 24 (- absnextdate (floor absnextdate))))
(str (concat s " "
(solar-time-string
compt (if (dst-in-effect absnextdate)
calendar-daylight-time-zone-name
calendar-standard-time-zone-name))))
(d (extract-calendar-day gregnextdate)))
(setq mylist (append mylist
(list
(list 'holiday-fixed month d str))))))))
mylist))
Cependant, emacs (version 23.2-r2 sur Gentoo) se plaint affiché année étant une variable vide au démarrage, et d'essayer de générer le calendrier avec Mx calendrier RET ne contribue pas non plus . Une idée de comment je peux réparer ça? (Certainement pas avec définir année-affichée dans mon .emacs
puisque cela vider définitivement tout le reste ...)
Avez-vous eu besoin d'un calendrier et le charger avant d'exécuter cette fonction? –