만년달력 질문 드려요ㅜㅜ
창의적
이 만년달력 프로그램에 방향키로 월을 이동 하는 기능을 추가하고 싶은데
오류가 생기네요 ㅠㅜ 좀 도와주세요//#includestdio.h
#includestdlib.h
int Detector(long);
long YYearCnter(long);
long DayAdder(long,int);
void PrintCalender(long,int);
void main(){
long Year;
int Month;
printf(달력출력프로그램입니다^^.\n);
while(1){
printf(연도를 입력하세요.(종료,Y0));scanf(%ld,&Year);
printf(달을 입력하세요.(종료=0));scanf(%d,&Month);
if(Month==0||Year0)
exit(1);
PrintCalender(Year,Month);
}
}
void PrintCalender(long Year,int Month){
long DayCnter;
int Day[6][7];
int i,j,Num=-1;
DayCnter=365*(Year-1)+YYearCnter(Year-1);
DayCnter+=DayAdder(Year,Month-1);
printf(======%d년 %d월======\n,Year,Month);
printf(일 월 화 수 목 금 토\n);
for(i=0;i6;i++){
for(j=0;j7;j++)
Day[i][j]=Num++;
}
for(i=0;i6;i++){
for(j=0;j7;j++)
Day[i][j]-=(DayCnter%7-1);
}
for(i=0;i6;i++){
for(j=0;j7;j++){
if(Month==1||Month==3||Month==5||Month==7||Month==8||Month==10||Month==12){
if(Day[i][j]31||Day[i][j]1)
printf( \t);
else
printf(%d\t,Day[i][j]);
}
else if(Month!=2){
if(Day[i][j]30||Day[i][j]1)
printf( \t);
else
printf(%d\t,Day[i][j]);
}
else{
if(Detector(Year)==0){
if(Day[i][j]29||Day[i][j]1)
printf( \t);
else
printf(%d\t,Day[i][j]);
}
else{
if(Day[i][j]28||Day[i][j]1)
printf( \t);
else
printf(%d\t,Day[i][j]);
}
}
}
printf(\n);
}
}
long YYearCnter(long Year){
long YearCnt=0;
int i;
for(i=1;i=Year;i++){
if(Detector((long)i)==0)
YearCnt++;
}
return YearCnt;
}
long DayAdder(long Year,int Month){
long DayCnt=0;
switch(Month){
case 1://1월
DayCnt+=31;
break;
case 2://2월
if(Detector(Year)==0)
DayCnt+=31+29;
else
DayCnt+=31+28;
break;
case 3://3월
if(Detector(Year)==0)
DayCnt+=31+29+31;
else
DayCnt+=31+28+31;
break;
case 4://4월
if(Detector(Year)==0)
DayCnt+=31+29+31+30;
else
DayCnt+=31+28+31+30;
break;
case 5://5월
if(Detector(Year)==0)
DayCnt+=31+29+31+30+31;
else
DayCnt+=31+28+31+30+31;
break;
case 6://6월
if(Detector(Year)==0)
DayCnt+=31+29+31+30+31+30;
else
DayCnt+=31+28+31+30+31+30;
break;
case 7://7월
if(Detector(Year)==0)
DayCnt+=31+29+31+30+31+30+31;
else
DayCnt+=31+28+31+30+31+30+31;
break;
case 8://8월
if(Detector(Year)==0)
DayCnt+=31+29+31+30+31+30+31+31;
else
DayCnt+=31+28+31+30+31+30+31+31;
break;
case 9://9월
if(Detector(Year)==0)
DayCnt+=31+29+31+30+31+30+31+31+30;
else
DayCnt+=31+28+31+30+31+30+31+31+30;
break;
case 10://10월
if(Detector(Year)==0)
DayCnt+=31+29+31+30+31+30+31+31+30+31;
else
DayCnt+=31+28+31+30+31+30+31+31+30+31;
break;
case 11://11월
if(Detector(Year)==0)
DayCnt+=31+29+31+30+31+30+31+31+30+31+30;
else
DayCnt+=31+28+31+30+31+30+31+31+30+31+30;
break;
case 12://12월
if(Detector(Year)==0)
DayCnt+=31+29+31+30+31+30+31+31+30+31+30+31;
else
DayCnt+=31+28+31+30+31+30+31+31+30+31+30+31;
break;
}
return DayCnt;
}
int Detector(long Year){
if(Year%4==0){
if(Year%100==0){
if(Year%400==0)
return 0;
else return 1;
}
return 0;
}
else return 1;
}