Next: Diary Customizing, Previous: Time Display Format, Up: Calendar
Emacsは、標準時間と夏時間の違いを理解しています。 つまり、日出入時刻、夏至冬至、春分秋分、朔弦望ではその違いを考慮します。 夏時間の規則は、地域ごと、年ごとに変わりえます。 正しく扱うためには、どの規則が適用されるかをEmacsが知っている必要があります。
読者の居住地域に適用される規則を記録している オペレーティングシステムもあります。 これらのシステム上では、Emacsは自動的にシステムから必要な情報を得られます。 この情報の一部やすべてが欠落していると、 GNU世界の中心であるマサチューセッツ州ケンブリッジで 現在使用している規則で補います。
デフォルトで選んだ規則が読者の地域に適切でないときには、
変数calendar-daylight-savings-starts
と
calendar-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月の最初の日曜日と
その年の10月の最後の日曜日です。
10月1日に夏時間を始めると変更したとすると、
変数calendar-daylight-savings-starts
に
つぎのように設定します。
(list 10 1 year)
より複雑な例として、ヘブライ暦のニサンの初日に夏時間が始まるとしましょう。
calendar-daylight-savings-starts
には、
つぎの値を設定します。
(calendar-gregorian-from-absolute (calendar-absolute-from-hebrew (list 1 1 (+ year 3760))))
これは、ニサンはヘブライ暦の最初の月であり、 ヘブライ暦年とグレゴリオ暦年はニサンで3760年違うからです。
読者の地域で夏時間をとっていなかったり、
つねに標準時間を望む場合には、
calendar-daylight-savings-starts
と
calendar-daylight-savings-ends
にnil
を設定します。
変数calendar-daylight-time-offset
は、
夏時間と標準時間の分で計った差を指定します。
ケンブリッジに対する値は60です。
変数calendar-daylight-savings-starts-time
と
calendar-daylight-savings-ends-time
は、
夏時間と標準時間との移行が行われる
地方時の真夜中の0時からの経過分を指定します。
ケンブリッジでは、どちらの変数の値も120です。