20200210 전역일 계산기

전상준 2020.02.10 15:50 조회 수 : 3

//2020 02 09 전역일 계산기 프로그램 Made by- 성용 상준

 

 

#include<stdio.h>

//#include<stdlib.h>

#include<time.h>

int main(void)

{

    int year, month, day;

 

    struct tm t;

    time_t timer;

    timer = time(NULL);

    localtime_s(&t, &timer);

    int  k;

    //int count = 0; D-day계산기 사용할때 써야지

    //int md[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };

    //int md2[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };

    printf("                전역일 계산기");

    printf("\n\n");

    printf("==========================================================================================\n");

    printf("1. 육군/의경            2. 공군               3.해군               4. 해병대\n");

    printf("==========================================================================================\n");

    printf("\n\n");

    while (1) {

        printf("번호를 입력하세요 : ");

        scanf_s("%d", &k);

        if (k > 0 && k < 4)

            break;

        printf("잘못 입력하였습니다. 다시 입력하세요\n");

    }

    switch (k)

    {

    case 1:

        while (1) {

            printf("연도 : ");

            scanf_s("%d", &year);

            if (year > 2008)

                break;

            printf("잘못 입력하였습니다. 다시 입력하세요\n");

        }

        while (1) {

            printf("월 : ");

            scanf_s("%d", &month);

            if (month > 0 && month < 13)

                break;

            printf("잘못 입력하였습니다. 다시 입력하세요\n");

        }

        while (1) {

            printf("일 : ");

            scanf_s("%d", &day);

            if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)

            {

                if (day > 0 && day < 32)

                    break;

            }

            else if (month == 4 || month == 6 || month == 9 || month == 11)

            {

                if (day > 0 && day < 31)

                    break;

            }

            else if (month == 2)

            {

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

                {

                    if (day > 0 && day < 30)

                        break;

                }

                else {

                    if (day > 0 && day < 29)

                        break;

                }

            }

            printf("잘못 입력하였습니다. 다시 입력하세요\n");

        }

 

        year = year + 1;

        month = month + 9;

        day = day - 1;

 

 

        if (month > 12)

        {

            year = year + 1;

            month = month - 12;

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

            {

                if (day <= 0) 

                {

                    month = month - 1;

                    if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)

                    {

                        day = 31;

                    }

                    else if (month == 4 || month == 6 || month == 9 || month == 11)

                    {

                        day = 30;

                    }

                    else

                        day = 29;

                }

                if (month == 2) {

                    if (day == 30)

                    {

                        day = 29;

                    }

                }

            }

            else {

                if (day <= 0) {

                    month = month - 1;

                    if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)

                    {

                        day = 31;

                    }

                    else if (month == 4 || month == 6 || month == 9 || month == 11)

                    {

                        day = 30;

                    }

                    else

                        day = 28;

 

 

                }

                if (month == 2)

                {

                    if (day >= 29)

                    {

                        day = 28;

                    }

                }

 

 

            }

        }

        else

        {

            if (day <= 0)

            {

                month = month - 1;

                if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)

                {

                    day = 31;

                }

                else if (month == 4 || month == 6 || month == 9 || month == 11)

                {

                    day = 30;

                }

            }

            if (month == 2 && day >= 29)

            {

                day = 1;

            }

        }

 

        printf("현재 날짜 : %d 년 %d월 %d 일 입니다.\n", t.tm_year + 1900, t.tm_mon + 1, t.tm_mday);

        printf("제대 날짜는 %d년 %d월 %d일 입니다.", year, month, day);

        break;

    }

 

    //system("pause");

    return 0;

}

 

if문으로 예외 처리하여 전역일 계산기를 만들어봤습니다

캡처.JPG EXIF Viewer만든이SVD_98사진 크기1241x631