C语言,输入年月日,判断是否有效,并且输出"年月日st nd rd th"


#include

#include

#include"string.h"


int main(int argc,const char * argv[]) {

    int year=0;int month=0;int day=0;

    int max_day=0;

    printf("请输入2000 05 20格式的年月日\n");

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

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

    enum monthlist{january=1,feburary,march,april,may,june,july,august,september,october,november,december};

    //enum monthlist today=january;

    printf("%d ",year);//先输出年

    //下面输出月*********

    if(month>0&&month<13){

        switch (month) {

            casejanuary:

                printf("january");

                break;

            casefeburary:

                printf("feburary");

                break;

            casemarch:

                printf("march");

                break;

            caseapril:

                printf("april");

                break;

            casemay:

                printf("may");

                break;

            casejune:

                printf("june");

                break;

            casejuly:

                printf("july");

                break;

            caseaugust:

                printf("august");

                break;

            caseseptember:

                printf("september");

                break;

            caseoctober:

                printf("october");

                break;

            casenovember:

                printf("november");

                break;

            casedecember:

                printf("december");

                break;

            default:

                break;

        }

    }else{

        printf("\n%d不存在%d",year,month);

    }

    

    

    /***此处加一个判断,每月最大天数*/

    switch (month) {

        case1:case3:case5:case7:case8:case10:case12:

            max_day=31;

            break;

        case4:case6:case9:case11:

            max_day=30;

        case2:

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

                max_day=29;

            }else{

                max_day=28;

            }

        default:

            break;

    }

    /*下面输出天数,并带有后缀*/

    if(day>0&&day<=max_day){

        if(day%10==1&&day!=11){

            printf(" %dth\n",day);

        }elseif(day%10==2&&day!=12){

            printf(" %dnd\n",day);

        }

        elseif(day%10==3&&day!=13){

            printf(" %drd\n",day);

        }else{

            printf(" %dth\n",day);

        }

        

    }else{

        printf("\n%d月不存在%d\n",month,day);

    }

    

    

    

}


你可能感兴趣的:(c语言,年月日,输入输出,scanf,st,nd,rd,th)