수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

C로 달력 출력 프로그램을 짰는데요..;;

큰아

2023.04.01

//20800613 정신원
//a년과 b월을 입력받아 그 달 달력을 출력하는 프로그램.
#include stdio.h
#define YES 1
#define NO 0
int month_day(int y,int m);
int first_day(int y,int m);
int show_calendar(int d, int f);
int is_leafyear(int y);
int year_days(int y);

int main(void)
{
int a,b,x;
int day,first;

while(1){

while(1){
printf(\n ▷ What Year?? );
scanf(%d, &a);
if((1900=a) && (a=2100))
break;
else
printf( → 1900~2100 사이를 입력해주세요.\n); //1900~2100년을 입력받기 위한 반복문.
}

while(1){
printf( ▷ What Month?? );
scanf(%d, &b);

if((0b) && (b13))
break;
else
printf( → 1~12 사이를 입력해주세요.\n); //1~12월을 입력받기 위한 반복문.
}

day=month_day(a,b);//해당 월의 날짜수를 알아내는 함수 call
first=first_day(a,b);//해당 월의 첫재날 요일을 알아내는 함수 call
show_calendar(day,first);//해당 월의 날짜수와그 첫째날 요일을 입력받아 달력 출력하는 함수 call
while(1){
printf(\n\n 다시 검색 하시겠습니까? \n (1=Yes/0=No) );
scanf(%d, &x);
if(x==1)
break;
else if(x==0)
return 0;
else
printf( - 1이나 0을 입력하세요. 1은 다른 달력 검색. 0은 종료.\n); //다른 달력을 검색할 것인지 여부 확인.
}

}

system(pause);pause);
}
int month_day(int y,int m)
{
switch(m){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
if(is_leafyear(y)==YES) //2월이 윤년인지 아닌지 판단.
return 29;
else
return 28;
}
}//해당 월의 날짜수를 계산하는 함수.
int is_leafyear(int y)
{
if(((y%4==0) && (y%100!=0)) || (y%400==0)) //해당년도가 4로 나누어떨어지면 윤년. 100으로 나누어떨어지면 윤년 아님. 그중 400으로 나누어떨어지면 윤년.
return YES;
else
return NO;
}
int first_day(int y, int m)
{
int i,n=0;
int fd;

for(i=1900;iy;i++)
n=n+year_days(i);

for(i=1;im;i++)
n=n+month_day(y,i);

fd=n%7+1;

return fd; //첫번째 요일을 구하고 그 값을 메인의 first로 반환.
}
int year_days(int y)
{
if(is_leafyear(y)==YES)
return 366;
else
return 365; // 윤년이냐 아니냐에 따라 366일인지 365일인지 반환.

}
int show_calendar(int d, int f)
{
int i,count=0;

printf( 〓 일 〓 월 〓 화 〓 수 〓 목 〓 금 〓 토 〓 \n\n);

for(i=1;i=f;i++){
printf( );
count++;
}

for(i=1;i=d;i++){
printf(%6d, i);
count++;
if(count%7==0){
printf(\n\n);
count=0;
}
}

}//main 에서 day와 first를 입력 받아 달력 출력.

***
이렇게 길게 올려서 죄송한데ㅡ.ㅜ
열심히 만들어 놓고 하루를 궁리해봤는데 고쳐보고 답이 안나와서요..;;
이렇게 프로그램 짰더니 달력이 잘 표시가 되는데요..
문제가 `-` 그 달의 첫 요일이 빈칸없이 바로 시작하면 달력이 깨져서 나와요..;; (ex 2008년 6월)

첫번째 날짜구해서 빈칸 띄우는데 문제가 있는것 같기도하고 여기저기 손대보고 해도..;;
잘 안되네요 ㅠㅠ 어떻게 해야 될까요.;;

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 연다홍

    show_calendar 함수 안에서 f 가 7이 아닐때만 빈 칸을 집어넣으면 되더군요..ㅎ

번호 제 목 글쓴이 날짜
2699380 메뉴가 계단식으로 나타나요.. ㅠ.ㅠ (5) 스릉흔다 2025-06-25
2699354 영문 웹폰트 관련 질문입니다!!! (1) 치킨마루 2025-06-25
2699329 윈도우 미디어 플레이어 URL 질문!!! (1) 제철 2025-06-25
2699296 동영상 배경 질문드려요!!!!!!!!!!!!!! 핫파랑 2025-06-24
2699214 position:fixed 에 대한 질문입니다.. (7) 사이 2025-06-24
2699183 제이쿼리 이미지 슬라이드 위치값 수정 초엘 2025-06-23
2699153 테마[ADORABLE]에서 페이지생성시 하위페이지는 2개밖에 안되나요? 흰여울 2025-06-23
2699129 네이버 블로그 또는 사이트의 글을 불러오기 갤원 2025-06-23
2699070 탭메뉴처럼 셀렉트 박스를 이용해서 내용을 출력할 수 있는 방법이 있을까요. (3) 큰꽃늘 2025-06-22
2699016 인터넷이 안되는 환경에서 validator설치방법 (3) 은송이 2025-06-22
2698988 대체 C++ 6.0 exe 아이콘은 어떻게 넣는건가요? 외국녀 2025-06-22
2698960 음성파일을 embed로 작업했는데..웹 표준코딩으로 변경하려면 어떻게 해야하나요? (1) 잎새 2025-06-21
2698932 메뉴목록 풍선창 만들기 html (2) 하늘이 2025-06-21
2698901 http://www.zeitgeistbot.com/ 이 사이트처럼 움직이는 효과를 무엇이라고 하나요? 누림 2025-06-21
2698876 table width값 크로스브라우징에 대한 문의 (2) 볼수록매력 2025-06-21
2698849 c언어 질문. (3) 아름나 2025-06-20
2698823 setInterval 이벤트 제거 하려면... 가온길 2025-06-20
2698796 이 오류를 이해를 못하겠어요 Addicted 2025-06-20
2698712 IF 문 이 계속 오류가 나요 (2) 옆집오빠야 2025-06-19
2698687 이미지를 클릭하면 그 이미지를 다운받게해주는 방법 질문요 ^^ (미해결) (5) 해지개 2025-06-19
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com