달력 기능추가도와주세요
가을c
질문 제목 : 달력 기능 추가 도와주세요
지금 해당년도랑 달입력하면 달력이 출력됩니다.
해당 달력이 출력되었을떄 여기서 기능을 추가해서 키보드 방향키로 달력을 움직일수있게 할수있으면좋겠어요
예를 들어 2011년 12월 달력을 출력했을때 방향키 오른쪽 누르면 2012년 1월로 가고 왼쪽누르면 2011년 11월로 가게끔 만들고 싶어요 어떻게 해야 여기서 기능을 추가할수잇을까요? ㅠㅠ질문 내용 :
#includestdio.h
#includestdlib.h
int detector(long); //0=윤년,1=윤년아님
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++; //1~42까지 대입
}
for(i=0;i6;i++){
for(j=0;j7;j++)
day[i][j]-=(daycnter%7-1); //1년1월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;
}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692424 | 2차원배열 자료입력질문이요! (1) | 똘끼 | 2025-04-22 |
2692401 | 유닉스안에서 C언어를 이용한 명함 만들기 입니다; 이해안가는 부분이있네요 | 2gether | 2025-04-22 |
2692374 | 고수님들 댓글 마니부탁해요!!! (2) | 엄지 | 2025-04-22 |
2692343 | scnaf에 자꾸 선언을 참조하라는데;; (8) | 도래 | 2025-04-22 |
2692282 | 도스상에서 생성된 exe파일에 press~ 뜨게 하기 (4) | 회사원 | 2025-04-21 |
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |
2691725 | 자료구조에 관련해서 질문이 있어 글을 올립니다. | 누리알찬 | 2025-04-16 |
2691697 | if 문에서 구조체 배열에 저장되있던 문자열 검사하는 법 ? (2) | 민트맛사탕 | 2025-04-16 |