¼¼°è Ç¥ÁؽúÎÅÍ ±× À¯¸®¿ì½ºÀÏÀ» ȯ»êÇÑ´Ù


ÇÔ¼ö¸í
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)
ÇÔ¼öÄ¡
À¯¸®¿ì½ºÀÏÀÇ °ª
ÁÖÀÇ »çÇ×
¡¤Àμö·Î¼­ °Ç³×¹Þ´Â ¼­±â ¿¬¿ùÀÏÀÌ ½ÇÀçÇÒÁö ¾î¶³Áö´Â
¡¡º»ÇÔ¼ö³»¿¡¼­´Â üũÇÏÁö ¾Ê´Â´Ù.

¿ë·Ê(ut2jd-test.c )
double d;
ut2jd(&d, 1996, 2, 29, 12, 0, 0);

ÇÁ·Î±×·¥(ut2jd.c )
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;
}
¼³¸í
ÀÏ»ó»ýÈ°¿¡ ½Ã°¢À̶ó°í Çϸé, ³â¡¤¿ù¡¤ÀÏ¡¤½Ã¡¤ºÐ¡¤Ãʸ¦ »ç¿ëÇÏ°í ÀÖ´Ù. ±×·¯³ª °è»ê¿¡´Â 60Áø¹ý, ´ÞÀÇ ´ë¼Ò, À±³âÀ̳ª Æò³âÀΰ¡, ÇÑÃþ ´õ ¿øÈ£¶ó°í Çß´Ù ¹°°ÇÀÌ È¥ÀçÇÏ°í ÀÖ´Ù. õ¹®ÇÐÀÇ ¼¼°è¿¡¼­´Â, ÀÖ´Â °áÁ¤ÇÒ ¼ö ÀÖ´ø ±â»êÀϺÎÅÍ ÀÏÀÚ¸¦ Àû»êÇØ ³ª°¡´Â À¯¸®¿ì½ºÀÏ(À¯¸®¿ì½º Åë»ê Àϼö)À̶ó°í ÇÏ´Â ¸Å¿ì Æí¸®ÇÑ ¶§ÀÇ Ã´µµ°¡ ÀÖ´Ù.

±× À¯¸®¿ì½ºÀÏÀÇ 0.0ÀÏÀº ±â¿ø Àü 4713³â(-4712¿¬) 1¿ù 1ÀÏÀÇ Á¤¿À·Î, ´ÙÀ½³¯ÀÇ Á¤¿À°¡ À¯¸®¿ì½ºÀÏ 1.0ÀÏÀÌ´Ù. 1991³â 6¿ù 15ÀÏ ¼¼°è Ç¥Áؽà 0½Ã ÀÇ À¯¸®¿ì½ºÀÏÀº 2448422.5ÀÏÀÌ µÈ´Ù.

°ü·Ã ÇÔ¼ö
À¯¸®¿ì½ºÀÏÀ» ¼¼°è Ç¥Áؽ÷Πȯ»êÇÑ´Ù