C 언어 달력 소스코드

실습과제 모음 2014. 4. 5. 15:09 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

#include <stdio.h>

 

int isLeapYear(int year);

int totalDaysYearMonth(int year, int month);

// year : 년도month : 월을입력하면그년도그월의총일수가

// 반환된다.

int totalDaysYear(int year);

int firstDayOfYear(int year);

 

int DayOfWeekYearMonth(int year, int month);

// year : 년도month : 월을입력하면그년도그월의요일이

// 반환된다.

 

int main( )

{

    int year;

    int month;

    int i;

    int totalDay = 0;

    printf(",월을입력하시오:");

    scanf("%d,%d", &year, &month);

 

    printf("%d\n", DayOfWeekYearMonth(year, month));

 

    return 0;

}

 

int DayOfWeekYearMonth(int year, int month)

{

    int i;

    int totalDay = 0;

 

    totalDay = firstDayOfYear(year);

    for( i = 1 ; i < month ; i++)

    {

        totalDay += totalDaysYearMonth(year, i);

    }

    return totalDay % 7;

}

 

int firstDayOfYear(int year)

{

    int i;

    int totalDay = 0;

    for ( i = 1980 ; i < year ; i++ )

    {

        totalDay += totalDaysYear(i);

    }

    return totalDay % 7;

}

int totalDaysYear(int year)

{

    if( isLeapYear(year) )

    {

        return 366;

    }

    else

    {

        return 365;

    }

}

int totalDaysYearMonth(int year, int month)

{

 

    if( month == 1 || month == 3 ||

        month == 5 || month == 7 ||

        month == 8 || month == 10 ||

        month == 12 )

    {

        return 31;

    }

    else

    {

        if( month == 2 )

        {

            if( isLeapYear(year) )

            {

                return 29;

            }

            else

            {

                return 28;

            }

        }

        else

        {

            return 30;

        }

    }

}

int isLeapYear(int year)

{

    if( ( (year % 4 == 0 && year % 100 != 0) || year % 400 == 0) )

    {

        return 1;

    }

    else

    {

        return 0;

    }

}

'실습과제 모음' 카테고리의 다른 글

studentInfo 실습  (1) 2014.04.19
C 배열 연습문제  (0) 2014.04.13
C 배열 실습 10명 성적처리  (0) 2014.04.05
별 찍기 예제 #3  (0) 2014.03.29
별 찍기 예제 #2  (0) 2014.03.29