特別なカレンダーコマンドを使えば、任意の日付の日の出・日の入り時刻を1〜2分の誤差で知ることができます。
選択した日付(calendar-sunrise-sunset)の日の出・日の入り時刻を表示します。
本日の日の出・日の入り時刻を表示します。
指定した日付の日の出・日の入り時刻を表示します。
選択した月の日の出・日の入り時刻を表示します。
カレンダー内で、エコー領域に日の出・日の入りの現地時刻を表示するには、目的の日付にポイントを移動し、S (calendar-sunrise-sunset)
と入力します。または、日付上の mouse-3 をクリックし、表示されるメニューから
‘Sunrise/sunset’ を選択します。コマンド M-x sunrise-sunset
はカレンダー外でも利用でき、本日または指定した日付のこの情報を表示します。本日以外の日付を指定する場合は C-u
M-x sunrise-sunset を使用し、年・月・日の入力が求められます。
C-u C-u M-x sunrise-sunset を使えば、任意の場所と日付における日の出・日の入り時刻を表示できます。このコマンドでは、経度、緯度、協定世界時との分単位の時差、および日付の入力を求められ、その後、その場所における該当日の日の出・日の入り時刻を教えてくれます。
日の出・日の入りの時刻は地球上の場所によって異なるため、これらのコマンドを使用する前に、Emacsに緯度、経度、および地名を指定する必要があります。設定例を以下に示します。
(setq calendar-latitude 40.1) (setq calendar-longitude -88.2) (setq calendar-location-name "Urbana, IL")
calendar-latitude と calendar-longitude の値は、小数第1位まで求めてください。
タイムゾーンは、日の出・日の入りの現地時刻にも影響します。Emacsは通常、オペレーティングシステムからタイムゾーン情報を取得しますが、これらの値が希望通りでない場合(あるいはオペレーティングシステムが情報を提供していない場合)は、自身で設定する必要があります。以下に例を示します。
(setq calendar-time-zone (* 12 60)) (setq calendar-standard-time-zone-name "NZST") (setq calendar-daylight-time-zone-name "NZDT")
calendar-time-zone
の値は、ローカル標準時と協定世界時(通称「グリニッジ時」)との分単位の差です。calendar-standard-time-zone-name と calendar-daylight-time-zone-name
の値は、お使いのタイムゾーンで使用される略称です。Emacs は、日の出・日の入り時刻を夏時間補正済みで表示します。夏時間の決定方法については、夏時間を参照してください。
記号形式のタイムゾーン(‘"CET"’など)ではなく、数値形式のタイムゾーン(‘"+0100"’など)を表示したい場合は、変数 calendar-time-zone-style に numeric を設定してください。
ユーザーの方は、普段利用している物理的な場所に合わせてカレンダーの位置情報変数を .emacs ファイルで設定しておくと便利かもしれません。システム管理者の方は、default.el ファイルで全ユーザー向けにこれらの変数を設定したい場合があるでしょう。Emacs初期化ファイルを参照してください。