Emacs のカレンダーに日本の祝日を設定する

日本の祝日システムはとても複雑なのだが、それを実装している Emacs Lisp がある。これさえ入れておけば Emacs できちんと祝日を認識できる。ソースを見てみればわかるが、過去の日付まで法律に基いて厳密に実装してある。

M-x install-elisp http://www.meadowy.org/meadow/netinstall/export/799/branches/3.00/pkginfo/japanese-holidays/japanese-holidays.el

http://www.rubyist.net/~rubikitch/archive/holiday.png

カレンダー関連の設定

(require 'calendar)
(setq  number-of-diary-entries 31)
(define-key calendar-mode-map "f" 'calendar-forward-day)
(define-key calendar-mode-map "n" 'calendar-forward-day)
(define-key calendar-mode-map "b" 'calendar-backward-day)
(setq mark-holidays-in-calendar t)
;; (install-elisp "http://www.meadowy.org/meadow/netinstall/export/799/branches/3.00/pkginfo/japanese-holidays/japanese-holidays.el")
(require 'japanese-holidays)
(setq calendar-holidays
      (append japanese-holidays local-holidays other-holidays))
(setq calendar-weekend-marker 'diary)
(add-hook 'today-visible-calendar-hook 'calendar-mark-weekend)
(add-hook 'today-invisible-calendar-hook 'calendar-mark-weekend)