SL Zaurus の休日設定

概要

SL Zaurus のカレンダの休日設定についてまとめます。 試したのは SL-C700 ですが、他の機種 (SL-C750, SL-C760, SL-B500, SL-A300 等)でも 似たようなものでしょう。

/home/QtPalmtop/etc/holiday.dat

/home/QtPalmtop/etc/holiday.dat というファイルが 休日設定ファイル。これをいじればカレンダ等で祝祭日の定義ができます。

編集方法

このファイルは UTF-8 でかかれているので、PC で編集したければ 対応したエディタを使えば良いんですが、Zaurus だけでやりたければ メモ帳が使えます。以下はその説明。

  1. メモ帳では直接 /home/QtPalmtop/etc/holiday.dat を開けないので適当にリンクを張ってやります。このとき、拡張子 (というかファイル名の末尾)を .txt にします。
  2. メモ帳は qpe グループ権限でファイルの書き込みを行えるかどうかを チェックしているっぽいので、/home/QtPalmtop/etc/holiday.dat/home/QtPalmtop/etc/ に qpe のグループ書き込み権限を与えます。(デフォルトと違う状態に なってしまうので、それが気持ち悪い人は root 権限で別の方法で やってください。ぼくは気にしませんけど。)
  3. メモ帳のオプション->文字コード設定で、読み込みと保存を Unicode(UTF-8)に設定します。
  4. メモ帳で編集してください。

以上の1.と2.の部分を実行した例が以下のとおりです。

bash-2.05$ ln -s /home/QtPalmtop/etc/holiday.dat ~/Documents/Text_Files/holiday.txt
bash-2.05$ su
bash-2.05# chmod g+rw /home/QtPalmtop/etc
bash-2.05# chmod g+rw /home/QtPalmtop/etc/holiday.dat
bash-2.05# exit
bash-2.05$

ちなみにアクセス権をデフォルトに戻したければ、作業後に 以下のようにやれば ok です。

bash-2.05$ su
bash-2.05# chmod g-w /home/QtPalmtop/etc
bash-2.05# chmod g-w /home/QtPalmtop/etc/holiday.dat
bash-2.05# exit
bash-2.05$

foo 月 bar 日の場合

これは特に説明不要でしょう。自分の誕生日か何かで試してみてください。

foo 月 第 bar 月曜以降の最初の hoge 曜日 の場合

(↑解釈が間違えているかも。間違ってたら指摘してください。)

これもわりと見たままです。通常のエントリに、W=bar I=(月曜=1..日曜=7とした曜日番号) を加えれば ok です。

例: 2004年以降の2月の第3月曜以降の最初の木曜 (ただし2000〜2003年は2/21)の場合
S=2000 B=2004 M=2 D=21 W=3 I=4 "2月第3月曜以降の最初の木曜記念日"

この月曜originのルールって、 アメリカの大統領選挙の「11月の第1月曜の次の火曜」とかに 準拠しているんでしょうか? たまたまこのルールだと(月曜が基準だから)ハッピーマンデーも記述できるし。

不定の場合

次は{春, 秋}分の日のように毎年かわってしまう場合です。 SL-C700 の holiday.dat を見てみると、春分の日は
S=1949 M=3 D=21 F=spring_equinox "春分の日"
となっています。 3/21 と定義されていますが、これが気持ち的には『デフォルト春分の日』みたいです。 でも、春分の日は3/21とは限らず、1日ずれることもあります。 そのような例外を書くのが F=spring_equinox で、 /home/QtPalmtop/etc/spring_equinox.dat というファイルを参照せよ、の意味のようです。 この中に 1972年〜2037 年までの 3/21 以外の春分の日が 入っています。
ところで、holiday.datのコメント行に書いてあるとおり、 {春, 秋}分の日を何年まで表示するかはholiday.datの 頭の方の L= で決めるようです。 さて、ここで一つ疑問です。SL-C700 のデフォルトは L=2003 なのですが、上述のとおり spring_equinox.dat には 2037 年まできっちり 春分の日が記されています。L=2003 に何か意味あるのかな? 別に 2037 でいいじゃん、と思ってL=2037 にしてみました。 さて、どうなるかな?

再起動

holiday.dat への変更を有効にするために再起動します。

再起動したら、めでたく2037年まで{春, 秋}分の日が表示されるように なりました。 Zaurus のカレンダって 1970-2037 までしか対応していないから、 {春, 秋}分の日のデータは完全に持っているってことですね。 結局『2003年縛り(L=2003)』はなんだったんでしょう? 意味あるのかな? 誰か知ってたら教えてください。


kobayashi@bme.oit.ac.jp (こばやしひろゆき)

Valid HTML 4.01! Last modified: Wed Mar 31 16:25:22 JST 2004