hakeの日記

Windows環境でプログラミングの勉強をしています。

カレンダーの祝日設定

カレンダーを眺めていたら来年以降の春分の日秋分の日が祝日になっていないのを発見、たしかにメニューの「オプション」で個別の休日設定はできるけれど、それで設定しろというんじゃないだろう思いつつ調べてみました。(アプリケーションマニュアルに2005年までしか設定していない旨の記述がありました)


で、祝日の設定ファイルは/home/QtPalmtop/etc/holiday.datであることが判りました、内容は以下

# あくまでも日本の祝日法にあったものでしかありません
# Sは施行された最初の年、Bは Happy Monday に変わった年
# 春分の日、秋分の日は Lの年まで表示
L=2005
X "振替休日"
Y "国民の休日"
S=1949 M=1 D=1 "元日"
S=1949 B=2000 M=1 D=15 W=2 I=1 "成人の日"
S=1966 M=2 D=11 "建国記念の日"
S=1949 M=3 D=21 F=spring_equinox "春分の日"
(以下略)

3行目の注釈をみると“L”に設定する値で春分の日秋分の日を表示させるか否かを決定しているみたいです。実際“L=2010”としたら2010年までの春分の日秋分の日を表示するようになっていました。なぜこんなことをしているのか推測すると春分の日秋分の日は前の年(多分です)にならないと確定しないのでSL-C3000が発売された時点で2006年以降の設定ができなかったためだと思います。


春分の日秋分の日は固定した日付ではないのでholiday.datには基準日(春分の日では3月21日)を仮に記述しておいて、その日と異なる年については同じディレクトリにあるspring_equinox.dat(春分の日)とautumn_equinox.dat(秋分の日)に記載されています。参照するファイルはholiday.dat内で“F=”で指定しています。ですから次の年のカレンダーが決定されたら、このファイルのデータを確認する必要がでてきます。


試しに

S=1949 M=5 D=12 F=test "テスト"

という行を追加して、test.datというファイルで適当に日付データを与えたところ、そのとおりの祝日設定ができました。


余談ですけれども、「X "振替休日"」「Y "国民の休日"」の行頭に“#”をつけてコメントアウトしてみたところ、それぞれ振り替え休日と5月4日が休みではなくなりました。


なおカレンダーが高速起動オンになっていると設定変更が反映されないので一旦オフにする必要があります。



せめて来年以降の春分の日秋分の日を設定する方法を公開してくれれば良いのに、シャープさんはどういうつもりなのでしょう? PIMで祝日が設定してないというのは大きなマイナスポイントだと思うのですけれどもね。SL-C3000より前に発売されたザウルスでも同じだったのでしょうか気になるところです。