Program 9¿ù24ÀÏ 6:26:34
À̰ÅÂü ³»°¡ Áú¹®ÇÏ°í ³»°¡ ¶Ç ´äÀ» ÇϰԵdz×
Á» º¹ÀâÇÒ °Í °°¾Ò´Âµ¥ ¸·»ó ±¸ÇöÇØ º¸´Ï »ý°¢º¸´Ù´Â ½±°Ô ±¸ÇöµÇ´õ±º¿ä
y1 m1 d1 ~ y2,m2,d2 ±îÁö·Î µÎ°í
if(y1 < y2)
{
if(m1 < m2)
{
}
else if(m1==m2)
{
}
else
{
}
else if(y1==y2)
...
...
ÀÌ·¸°Ô ¸ðµÎ °æ¿ì 3x3x3=27 °¡Áö¿¡¼ ÇϳªÇϳª ±¸ÇöÇØ º¸´Ï
´ëºÎºÐ °°Àº ÄÚµå·Î ³ª¿Í °æ¿ìÀÇ ¼ö°¡ ÅëÇյ˴ϴÙ.
¿©±â¼ ¸ÕÀú ¿ùº°³¯Â¥¹è¿ int arday[]={0,31,28,31,30 ....}À» ¸¸µé¾î ³õ°í
ÀÌ ¹è¿À» ÂüÁ¶Çϵµ·Ï ÇϺ¯ µË´Ï´Ù.
±×·°Àú·° Àß µ¿ÀÛÇϴµ¥
À±³â 2¿ù29ÀϱîÁö ¾Ò´Â ÇØ
À̰ÍÀ» ±¸ÇöÇÒ·Á´Ï ¸·È÷³×¿ä |
ÀÛ°¡K 9¿ù29ÀÏ 6:28:17
À©µµ¿ì¿ë ÇÔ¼ö°¡ µû·Î ÀÖÁö´Â ¾Ê½À´Ï´Ù. ´ë½Å Àý´ë ³¯Â¥¿Í »ó´ë ³¯Â¥¸¦ ÅëÇØ ¿¬»ê °¡´ÉÇÕ´Ï´Ù.
// st ³¯Â¥ÀÇ Àý´ë ³¯Â¥¸¦ ±¸ÇÑ´Ù. 1601³â 1¿ù 1ÀÏÀ» ±âÁØ(0ÀÏ)À¸·Î °æ°úÇÑ ³¯Â¥ ¼ö¸¦ ¼¼ ÁØ´Ù.
DWORD MyGetAbsDay(SYSTEMTIME st)
{
INT64 i64;
FILETIME fst;
st.wHour=st.wMinute=st.wSecond=st.wMilliseconds=st.wDayOfWeek=0;
SystemTimeToFileTime(&st,&fst);
i64=(((INT64)fst.dwHighDateTime) << 32) + fst.dwLowDateTime;
i64 = i64 / 864000000000;
return (DWORD)i64;
}
// Àý´ë ³¯Â¥¸¦ ½Ã½ºÅÛ Å¸ÀÓÀ¸·Î ¹Ù²Û´Ù.
void MyAbsToSystem(DWORD Abs, SYSTEMTIME &st)
{
INT64 i64;
FILETIME fst;
i64=Abs * 864000000000;
fst.dwHighDateTime = (DWORD)(i64 >> 32);
fst.dwLowDateTime = (DWORD)(i64 & 0xffffffff);
FileTimeToSystemTime(&fst, &st);
}
ÀÌ µÎ ÇÔ¼ö¸¦ Àß »ç¿ëÇϸé DiffDay ÇÔ¼ö¸¦ ¸¸µé¾î ¾µ ¼ö ÀÖÁö¿ä. SYSTEMTIME ŸÀÔÀÇ sStart¿Í sEnd°¡ ÀÖ´Ù¸é °æ°úÀÏÀº ´ÙÀ½ °ø½ÄÀ¸·Î ±¸ÇÕ´Ï´Ù.
dStart=MyGetAbsDay(sStart);
dEnd=MyGetAbsDay(sEnd);
dEllipse=dEnd-dStart;
±×³É »©±â¸¸ ÇÏ¸é µÇÁö¿ä. ÃÊ ´ÜÀ§±îÁö °è»êÇÏ´Â ÇÔ¼öµµ ¹°·Ð ¸¸µé ¼ö ÀÖ¾î¿ä.
|