바람이 머문 언덕

요일구하는 함수 흉내내기 본문

컴퓨터 IT/C++ 언어

요일구하는 함수 흉내내기

알 수 없는 사용자 2009. 11. 25. 15:17
반응형

년 월 일을 전달하면 요일을 구하는 함수입니다.
 
    char * getweekday(int num,int mon,int day)       // 입력한 날짜의 요일 구하기
    {
        int iy=num-1, nal = iy * 365;
        nal+ = iy/4-iy/100+iy/400;                 // 윤달을 더 해주어서 입력한 앞달까지의 총 일수를 구한다.
        for(iy=1; iy<mon; iy++) 
        {
             nal+ =  togetday( num, iy);
        }
        return weekday( (nal+day)%7);
   }

   int togetday(int num, int mon)              // 입력한 달이 몇 칠까진지 구한다.
   {
        int nm[12]={ 31,28,31,30,31,30,31,31,30,31,30,31 }, i = 0;
        if(mon  > 0 && mon < 13)
        {  
            if(mon == 2)
            {
                 nm[1] = (num%4) ? 28 : (num%100) ? 29 : (num%400) ? 28 : 29;  // 윤달인지 체크 한다. 
            }
            i = nm[mon-1];
        }
        return  i;
   }

   char *weekday(int ky) //  문자로 변환 한다.
   {
       char a[7][3]={"일", "월", "화", "수", "목", "금", "토"};
       static char b[7]={"일요일"};
       b[0] = a[ky][0]; b[1] = a[ky][1];
       return b;
   }