ut2jd 世界標準時からそのユリウス日を換算する
long ut2jd(double *d, int year, int month, int day,
int hour, int min, int sec);
d (出力)1日の時間を 1 としたときの正午からの時間 year (入力)年 month (入力)月 (1 〜 12) day (入力)日 hour (入力)時 (0 〜 23) min (入力)分 (0 〜 59) sec (入力)秒 (0 〜 59)
ユリウス日の値
long ut2jd(double *d, int year, int month, int day,
int hour, int min, int sec)
{
int bc, gregory;
long j;
bc = year <= 0;
/* First day at Gregory's calendar */
gregory = year > 1582 || (year == 1582 && month > 10) ||
(year == 1582 && month == 10 && day >= 15);
if (month <= 2) {
year--;
month += 12;
}
if (hour < 12) {
j = 0;
*d = 0.5;
} else {
j = 1;
*d = -0.5;
}
*d += (hour*3600L + min*60 + sec)/86400.0;
j += bc ? (year-3)/4 : year/4;
if (gregory) j+= 2 - year/100 + year/400;
j += 1720994L + year*365L + (month+1)*30 + (month+1)*3/5 + day;
return j;
}
そのユリウス日の0.0日は紀元前4713年(-4712年)1月1日の正午で、 翌日の正午がユリウス日1.0日である。1991年6月15日世界標準時0時 のユリウス日は2448422.5日になる。