C语言验证日期格式是否正确

验证用户输入的日期格式是否正确,如果不正确,则提示重新输入,直到重新输入正确为止。(提示:需要定义一个表示日期的结构体类型struct Date,包括年、月、日信息,并用typedef重新定义新类型名Date;检查日期是否有效,定义为函数int checkDate(Date date))
求大神解答~

#include<stdio.h>
typedef struct {int y,m,d;}Date;
int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int checkDate(Date date)
{mon[2]=28+(date.y%4==0&&date.y%100||date.y%400==0);
 return date.y>0&&date.m>0&&date.d>0&&date.m<13&&date.d<=mon[date.m];
}
int main()
{ Date date;
  scanf("%d%*c%d%*c%d",&date.y,&date.m,&date.d);
  printf("%s",(checkDate(date)?"OK":"Error"));
  return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答