Previous: Appointments, Up: Calendar/Diary


27.12 夏時間

Emacsは標準時と夏時間の違いを理解していて、 日出入、夏至、冬至、春分、秋分、朔弦望の時刻ではこれを補正しています。 夏時間の規則は、地域によっても、また、歴史的にもさまざまです。 補正を正しく行うには、使用する規則をEmacsに与えておく必要があります。

オペレーティングシステムのなかには、 その設置場所で適用する規則を記録しているものもあります。 このようなシステムでは、Emacsは自動的に必要な情報をシステムから取得します。 情報の一部や全部が欠けている場合には、現在マサチューセッツ州ケンブリッジで 使われている規則でEmacsは欠落部分を補おうとします。 その結果が正しくないならば、 変数calendar-daylight-savings-startscalendar-daylight-savings-endsを設定し、 規則をEmacsに与える必要があります。

これらの変数の値は、変数yearを参照するLisp式である必要があり、 評価すると、グレゴリオ暦での夏時間の開始日や終了日を表す (month day year)という形のリストになる必要があります。 在住地方で夏時間を採用していない場合には、 これらの値はnilにしておきます。

Emacsはこれらの式を用いて夏時間の開始日を決定し、 祝祭日一覧や太陽や月に関する計算の時刻補正に使います。

マサチューセッツ州ケンブリッジの値は以下のとおりです。

     (calendar-nth-named-day 1 0 4 year)
     (calendar-nth-named-day -1 0 10 year)

yearで指定される年の4月の最初の日曜日(0番目)から始まり、 その年の10月の最後の月曜まで続くことを表します。 夏時間の開始日が10月1日に変更されたならば、 変数calendar-daylight-savings-startsには以下のように設定します。

     (list 10 1 year)

読者の地方で夏時間を採用していなかったり、 すべての時刻を標準時で扱いたい場合には、 変数calendar-daylight-savings-startsと 変数calendar-daylight-savings-endsにはnilを設定してください。

変数calendar-daylight-time-offsetは、 夏時間と標準時の差を分単位で指定します。 マサチューセッツ州ケンブリッジでは60(分)です。

2つの変数calendar-daylight-savings-starts-timeと 変数calendar-daylight-savings-ends-timeは、 夏時間の開始/終了が地方時の真夜中の0時から何分ずれるかを指定します。 マサチューセッツ州ケンブリッジではどちらも120(分)です。