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日になる。