ユリウス日と改訂ユリウス日を求める 応援する  srfi-19ライブラリの<date>型で日数計算するとき、基準となる日付から起算した日数に変換してから計算するのが楽です。
date->julian-day関数とdate->modified-julian-day関数は<date>型の値をユリウス日と改訂ユリウス日に変換します。
date->julian-day date ;; ユリウス日を求める
date->modified-julian-day date ;; 改訂ユリウス日を求める
例:
gosh> (use srfi-19) ;; srfi-19ライブラリを使用するためにuse式を評価させる
#<undef>
gosh> (define today (current-date)) ;; 現在の日付を得てtodayという名前を付ける
today
gosh> today
#<date 2007/01/17 16:47:11.342914000 (32400)>
gosh> (date->julian-day today) ;; ユリウス日を得る
2454117.824436839
gosh> (date->modified-julian-day today) ;; 改訂ユリウス日を得る
54117.324436839204
ユリウス日の基準日は紀元前4713年1月1日正午(世界標準時)、改訂ユリウス日の基準日は1858年11月17日0時です。
ユリウス日を使うべきか、それとも改訂ユリウス日を使うべきか?
ユリウス日は値が大きすぎて誤差が大きくなる可能性があります。
通常は改訂ユリウス日を使用すべきです。
| |
|