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³â¿¡ À¯¸®¿ì½º¡¤Caesar°¡ ä¿ëÇÑ °ÍÀÌ´Ù. À²¸®¿ì½º·ÂÀº 1582³â 10¿ù 4ÀϱîÁö »ç¿ëµÇ¾î ±× ´ÙÀ½³¯Àº ±×·¹°í¸®¿À ´Þ·Â(ÀÏ·Â)ÀÇ µ¿³â 10¿ù 15ÀÏÀÌ´Ù.