C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[22947] [질문]해석이 잘 안되네요...
조은휘 [] 780 읽음    2002-12-01 11:38
달력을 출력하는 프로그램인데...
내일까지 주석을 달아가야 하거덩여
process1함수라도...주석좀 달아주세여...
특히 이부분(↓)이 이해가 잘 안되거덩요...

b = (totalday%7) + 1;//총 날짜수를 7로 나누어 주를 출력한다.
                         //200년이 넘어가면 overflow가 나므로 7로 나누었음



#include <stdio.h>
#include <conio.h>

int process1(void);
int selection(void);
void printcalender(int);

int monthend[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int choice, pro1;
int year = 0;
int month = 0;
int day = 0;

void main(void)
{
    while(1)
    {
                
        choice = selection();

    if(choice == 1)
        {    
            pro1 = process1();
            printcalender1(pro1);
        }    
    
    else
        {
        printf("\n이용해 주셔서 감사합니다.\n");
        break;
        }
    }
}




int selection(void)
{
    int a;
    do
    {    
        puts("\n\n달력 출력 프로그램 ");
        puts("==========================");
        puts("\n1.특정 달의 달력 출력하기");
        puts("\n2.종료하기");
        puts("\n==========================");
        printf(" Selection : ");
        scanf("%d", &a);
    }while(a<1 || a>2);
    
    return a;
}

int process1(void)
{
    int totalday, a, b;
    
    printf("\n년도를 입력하세요 : ");
    scanf("%d", &year);
    printf("\n달을 입력하세요 : ");
    scanf("%d", &month);
    while(month<1 || month>12)
    {    
        printf("\n1~12월 사이의 숫자를 입력하세요 : ");
        scanf("%d", &month);
    }
    if( (year%4 == 0) && (year%100 !=0) || year%400 == 0)//윤년인지 아닌지 계산
        //받아 들인 해가 4나 400으로 나누어 떨어지면 윤년이다
        //100으로 나누어 떨어지는 경우는 윤년이 아니다.

        monthend[2] = 29;//윤년이면 2월달의 끝날은 29일 이다
    else
        monthend[2] = 28;//윤년이 아니면 28일 이다.
    
    totalday = (year-1)*365 + (year-1)/4 - (year-1)/100 + (year-1)/400;
//작년 까지의 날 수 계산 하기 위하여 -1을 하였음
    for (a=1; a<month; a++)
        totalday+=monthend[a];//
        
    b = (totalday%7) + 1;//총 날짜수를 7로 나누어 주를 출력한다.
                         //200년이 넘어가면 overflow가 나므로 7로 나누었음
    return b;
}

void printcalender(int x)
{
    int a, b;
    printf("\n    %d년 %d월 달력  ", year, month);
    puts("\n======================");
    printf(" 일 월 화 수 목 금 토 \n");
    if(x > 6) 
        x = 0;
    for(a=0; a < x; a++)
        printf("   ");
    for(b=1; b <= monthend[month]; b++)
    {
        printf("%3d", b);
        if((x + b)%7 == 0)
        printf("\n");
    }
    puts("\n======================");
    printf("\n다 보셨으면 아무키나 누르세요.");
    getch();

}


+ -

관련 글 리스트
22947 [질문]해석이 잘 안되네요... 조은휘 780 2002/12/01
31267     Re:[질문]해석이 잘 안되네요... 음냐리 616 2002/12/02
31266     Re:[질문]해석이 잘 안되네요... 조은휘 685 2002/12/01
31265     Re:[질문]해석이 잘 안되네요... 조은휘 709 2002/12/01
31264     Re:[질문]해석이 잘 안되네요... 정찬호.라다 620 2002/12/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.