Next: , Previous: , Up: Calendar/Diary   [Contents][Index]


31.11 サマータイム

Emacsは、標準時とサマータイムの違いを理解します。日の出、日の入り、夏至、冬至、春分、秋分、月の位相では、時刻を補正しています。サマータイムのルールは、場所によりさまざまで、歴史的にも異なります。処理を正しく行なうには、Emacsが使用するルールを知る必要があります。

どこにいるかにより適用されるルールを、追跡するオペレーティングシステムもあります。そのようなシステムでは、Emacsはそのシステムから必要な情報を取得します。これらの情報の一部またはすべてが欠落している場合、Emacsは現在マサチューセッツのケンブリッジで使用されているルールで、そのギャップを埋めます。その結果としてのルールが望むものでない場合、変数calendar-daylight-savings-startsおよびcalendar-daylight-savings-endsをセットすることにより、Emacsに使用するルールを指定できます。

これらの値は、変数yearを参照するLisp式で、サマータイムが開始または終了される、(month day year)という形式のリストによる、グレゴリオ暦の日付として評価されます。その地域がサマータイムを使用しない場合、値はnilであるべきです。

Emacsは、サマータイムの開始を決定するためにこれらの式を使い、休日リスト、太陽および月に関する時刻の補正を行ないます。

マサチューセッツのケンブリッジにたいする値は、以下のとおりです:

(calendar-nth-named-day 2 0 3 year)
(calendar-nth-named-day 1 0 11 year)

つまり、yearで指定される年の、3番目の月(3月)の、第2週の0番目の曜日(日曜日)と、、その年の11番目の月(11月)の、第1週の日曜日です。サマータイムが10月1日から開始されるように変更する場合、calendar-daylight-savings-startsを以下のように変更します:

(list 10 1 year)

その地域でサマータイムがない、またはすべての時刻を標準時にしたい場合は、calendar-daylight-savings-startscalendar-daylight-savings-endsを、nilにセットします。

変数calendar-daylight-time-offsetは、サマータイムと標準時の差を、分で指定します。マサチューセッツのケンブリッジでは60です。

最後に、2つの変数calendar-daylight-savings-starts-timecalendar-daylight-savings-ends-timeは、サマータイムの開始と終了の遷移時に、地方時の真夜中から何分ずれるかを指定します。マサチューセッツのケンブリッジでは、変数の値は両方とも120です。