求大Lao告知这个怎么做,我是刚学不久

img


求大Lao告知这个怎么做,我是刚学不久,这个怎么做啊……,请帮我解答谢了

供参考:

#include<stdio.h>
int isLeap(int y)
{
    return ((y%4==0 && y%100!=0)||(y%400==0));
}
int GetDaysOfMonth(int y, int m)
{
    int daysOfMonth[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
    if(isLeap(y) && m == 2)  return daysOfMonth[m-1]+1;
    return daysOfMonth[m-1];
}
int main()
{
    int year ,month ,day, ret;
    //printf("请输入年月日:");
    ret = scanf("%d %d %d", &year, &month, &day);
    if (ret == 3){
        if (year > 0 && month > 0 && month < 13 &&
            day <= GetDaysOfMonth(year,month) && day >= 1)
            printf("YES");
        else
            printf("NO");
    }
    else
        printf("Input error.");
    return 0;
}

判断年是否为闰年,然后判断2月份的天数是否合适。

#include <stdio.h>
int main()
{
int  y ,m,d,yes = 0;
scanf("%d%d%d",&y,&m,&d);
if(y<=0 || m>12 || m< 1||d>31 || d<1)
{
    printf("no");
    return 0;
}
switch(m)
{
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
         if(d<=31)
          {
              yes = 1;
              break;
          }
          break;
    case 4:
    case 6:
    case 9:
    case 11:
          if(d<=30)
          {
              yes = 1;
              break;
         }
         break;
    case 2:
    {
        if((y%4!=0)||(y%100==0&&y%400!=0))
        {
            if(d<=28)
            {
                 yes = 1;
                 break;
            }
        }
        else if(d<=29)
        {
            yes = 1;
            break;
        }
        break;
    }
    if(yes == 1)
       printf("yes");
    else
       printf("no");
    return 0;
}