만년달력 질문 드려요ㅜㅜ
아인
이 만년달력 프로그램에 방향키로 월을 이동 하는 기능을 추가하고 싶은데
오류가 생기네요 ㅠㅜ 좀 도와주세요//#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;
}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2693984 | 오버로딩이 무엇인가요? (2) | 헛매질 | 2025-05-07 |
2693956 | PlaySound재생이 안됩니다!(C에 음악넣기) | 지존 | 2025-05-06 |
2693928 | &와 *의 사용에 관한 명확한 이해 | 제나 | 2025-05-06 |
2693903 | 반복문 설명좀요 ㅠㅠ (2) | 란새 | 2025-05-06 |
2693869 | stdio.h 는 왜 쓰는건가요? (1) | 큰꽃들 | 2025-05-06 |
2693842 | 포인터 변수의 주소값끼리 더하는 것에 대해서 질문드립니다. (1) | 진솔 | 2025-05-05 |
2693811 | 소수 출력;;;; | 화이트캣 | 2025-05-05 |
2693788 | 이런 함수는 없나요? (3) | 앤드류 | 2025-05-05 |
2693758 | txt파일 불러와서 행렬로 저장 | 큰애 | 2025-05-05 |
2693727 | scanf 오류 문제!! (2) | 큰나래 | 2025-05-04 |
2693704 | 구조체 주소록 문제인데 도와주세요 (2) | 도1도캣 | 2025-05-04 |
2693676 | 열혈강의 c언어 질문입니다 | 하양이 | 2025-05-04 |
2693647 | 12.620000 을요 12.620 으로 어떻게 표현해요? (2) | 파도 | 2025-05-04 |
2693619 | 타이틀 코드.. | 단순드립 | 2025-05-03 |
2693591 | 컴파일 에러에서 질문드립니다 (3) | 게자리 | 2025-05-03 |
2693463 | 동적할당 이용시 fwrite사용을 어떻게 해야하나요..? (10) | 일본어못해요 | 2025-05-02 |
2693387 | 배열문제입니다 수정오류캡쳐했습니다 (6) | 연하얀 | 2025-05-01 |
2693356 | text 입출력 내림차순 질문입니다 ㅠ | 빛글 | 2025-05-01 |
2693328 | C언어를이용해서 .txt파일 외에 다른 확장자 파일 삭제가 가능한지.. (2) | 대나무 | 2025-05-01 |
2693299 | 파일입출력 바이너리파일 | 독특한 | 2025-04-30 |