« Internet Aquos | トップページ | 窓使いの憂鬱 »

みどりの日、昭和の日対応 japanese-holidays.el

以前、「ほんまたけるのココログ: emacs の M-x calendar で日本の祝祭日を。」という記事を書いたが、これとの関連。

最近、みどりの日が5月4日に移り、もとの4月29日が昭和の日となったことを知った。これだけなら、上の記事の中でやったように、変数 general-holidays-JP を定義しなおすだけで良いのだが、Wikipedia の「休日」の項目などによると5月の3日4日5日のいずれかが日曜にあたると5月6日が振替休日となるようだ。

そこでそのことも含めて、変数 general-holidays-JP を書き換えようとすると結構大事なことに気がついた。5月5日が日曜の場合は、現行のままでよいが、5月3日や5月4日を holiday-fix や holiday-furikae にしても、5月6日が振替休日にならない。そこで、5月3日と5月4日が日曜かどうか判定して、5月6日が振替休日かどうが決めることにしてもよいのだが、行き当たりばったり感が否めない。

で、ちょっと探してみたら、見つかった。japanese-holidays.el の改訂版。リビジョン799。

これはすばらしい。holiday-range という関数が定義してあって、それぞれの休日が制定されてから廃止されるまでの期間をしていできるようになっている。単にそれぞれの休日の日付だけを変えると、過去や未来にわたってその休日が計算されてしまうが、それを避けることができる。

それに、特別の法律で休日となった下のような日もちゃんと休日になるようにしてある。


(filter-visible-calendar-holidays
'(;; 皇太子明仁親王の結婚の儀の行われる日を休日とする法律 (昭和34年法律第16号)
((4 10 1959) "明仁親王の結婚の儀")
;; 昭和天皇の大喪の礼の行われる日を休日とする法律 (平成元年法律第4号)
((2 24 1989) "昭和天皇の大喪の礼")
;; 即位礼正殿の儀の行われる日を休日とする法律 (平成2年法律第24号)
((11 12 1990) "即位礼正殿の儀")
;; 皇太子徳仁親王の結婚の儀の行われる日を休日とする法律 (平成5年法律第32号)
((6 9 1993) "徳仁親王の結婚の儀"))))

で、置き換えてみたら、土日に色がつかない。ちょっと調べてみたら、calendar-mark-weekend という関数が以前のものと違っていることに気がついたので、これを以前のものに置き換えてみた。一応なんとかなっているようだ。

ちなみにこの関数を置き換えた上での、設定の仕方は、 japanese-holidays.el に書いているのと、ちょっと違うかも。

私の .emacs の関連部分は下の通り。

;; japanese-holiday.el ;; calendar を日本の祝祭日に合わせて使う。 ;; 20060829 現在、最新版は、下。 ;; http://www.meadowy.org/meadow/netinstall/browser/branches/3.00/pkginfo/japanese-holidays/japanese-holidays.el?rev=799 ;; 適当なところにおいて、 load (load "~/elisp/japanese-holidays.el") (add-hook 'calendar-load-hook (lambda () (require 'japanese-holidays) (setq calendar-holidays (append japanese-holidays local-holidays other-holidays)))) (setq mark-holidays-in-calendar t)

;; “きょう”をマークするには以下の設定を追加します。
(add-hook 'today-visible-calendar-hook 'calendar-mark-today)

;; 日曜日を赤字にする場合、以下の設定を追加します。
(setq calendar-weekend-marker 'diary)
(add-hook 'today-visible-calendar-hook 'calendar-mark-weekend)
(add-hook 'today-invisible-calendar-hook 'calendar-mark-weekend)

;; 日曜日だけじゃなく、土曜にも色をつける。
(setq calendar-weekend '(0 6))
;; やっぱり、日曜日だけに色をつけることにする。
;;(setq calendar-weekend '(0))
(make-face 'sunday-face)
(set-face-foreground 'sunday-face "Tomato")
(make-face 'saturday-face)
(set-face-foreground 'saturday-face "LightBlue")
(setq calendar-sunday-marker 'sunday-face)
(setq calendar-saturday-marker 'saturday-face)
(setq diary-entry-marker (quote bold-italic))
(setq diary-file "~/howm/diary")

Calendar

|

« Internet Aquos | トップページ | 窓使いの憂鬱 »

emacs 関係」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/11083/11665535

この記事へのトラックバック一覧です: みどりの日、昭和の日対応 japanese-holidays.el:

« Internet Aquos | トップページ | 窓使いの憂鬱 »