c语言判断日期合法性

2024-12-03 01:15:39
推荐回答(2个)
回答(1):

手边没有IDE,查错有点费事,写了一个

#include 
void yes();
void no();
int main(void)
{
    int year,month,day;
    printf("Please Input Data Like 1992-04-03:\n");
    scanf("%d-%d-%d",&year,&month,&day);
    if(year < 0 || year > 3000 || day > 31 || day < 0 || month > 12 || month < 0 )
    {
        printf("Please Input Right Number!\n");
        return -1;
    }
    if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
    {
        if(day > 0 && day <= 31)
        {
            yes();
        }
        else
        {
            no();
        }
    }
    else if(month == 2)
    {
        if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 && year % 100 == 0)
        {
            yes();
        }
        else
        {
            no();
        }
    }
    else
    {
        if(day > 0 && day < 31)
        {
            yes();
        }
        else
        {
            no();
        }
    }
    return 0;
}
void yes()
{
    printf("YES\n");
}
void no()
{
    printf("NO\n");
}

回答(2):

第28行 }else{ if 中间这个{是什么意思