바람이 머문 언덕
요일구하는 함수 흉내내기 본문
년 월 일을 전달하면 요일을 구하는 함수입니다.
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;
}