Gaucheプログラミング(立読み版) > 第2部: 実用 > スケジュールCGIを書こう > 時間型と日付型 > ユリウス日と改訂ユリウス日を求める


[Prev] [Next] [Up] [Contents][フレーム表示] [フレーム解除

ユリウス日と改訂ユリウス日を求める 応援する 

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時です。

ユリウス日を使うべきか、それとも改訂ユリウス日を使うべきか?

ユリウス日は値が大きすぎて誤差が大きくなる可能性があります。 通常は改訂ユリウス日を使用すべきです。


[Prev] [Next] [Up] [Contents][フレーム表示] [フレーム解除

このサイトについて|ヘルプ|Q&A|個人情報保護|プライバシーポリシー|利用規約|コメント・トラックバック規約|削除規程|広告掲載
Copyright (c) 2005-2007 Time Intermedia Corporation