jd2ut ユリウス日を世界標準時に換算する
void jd2ut(int *year, int *month, int *day, int *hour,
int *min, int *sec, long j, double d);
year (出力)年 month (出力)月 day (出力)日 hour (出力)時 (0 〜 23) min (出力)分 (0 〜 59) sec (出力)秒 (0 〜 59) j (入力)ユリウス日の整数部分 d (入力)ユリウス日の小数部分
なし
void jd2ut(int *year, int *month, int *day,
int *hour, int *min, int *sec, long j, double d)
{
long c, k, e, s;
if (d >= 0.5) {
j++;
d -= 0.5;
} else d += 0.5;
if (j >= 2299161) j = j + 1 + (j-1867216)/36524 - (j-1867216)/146096;
j += 1524;
c = (j - 122.1)/365.25;
k = 365L*c + c/4;
e = (j - k)/30.6001;
*year = c - 4716;
*month = e - 1;
if (*month > 12) {
(*month) -= 12;
(*year)++;
}
*day = j - k - (long)(30.6*e);
s = d * 86400 + 0.5;
*hour = s / 3600;
*min = (s % 3600) / 60;
*sec = s % 60;
}
そのユリウス日の0.0日は紀元前4713年(-4712年)1月1日の正午で、 翌日の正午がユリウス日1.0日である。1991年6月15日世界標準時0時 のユリウス日は2448422.5日になる。
ユリウス日の起算日紀元前4713年1月1日はユリウス暦による日付で、 ユリウス暦は紀元前46年にユリウス・カエサルが採用したものである。 ユリウス暦は1582年10月4日まで使われ、その翌日はグレゴリオ 暦の同年10月15日である。