C语言中怎么判断输入日期格式是否正确,要求输入的格式为年-月-日,如1995-12-06

如题所述

第1个回答  2013-04-01
char str[100];
memset(str,0,100);
strcpy(str,"1995-12-06")
int year,month,day;
sscanf(str,"%d-%d-%d",&year,&month,&day);//自己调试下就好了
第2个回答  2013-04-01
1,判断第5,8个是否为-
2,月份是否<13
3,号是否 满足 13578十腊 < 32, 46911<31 如果是闰年2<30。如果不是闰年2<30
第3个回答  2013-04-01
如果test为你输入的时间信息用
test.indexof("-")
判断是否是要求的格式
第4个回答  推荐于2017-09-03
#include <stdio.h>
static int is_valid_date(int y, int m, int d)
{
int month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
month[1] = 29;
return m > 0 && m <= 12 && d > 0 && d <= month[m - 1];
}
int main(void)
{
int y, m, d;
scanf("%4d-%2d-%2d", &y, &m, &d);
if (is_valid_date(y, m, d))
printf("valid date\n");
else
printf("invalid date\n");
return 0;
}本回答被提问者采纳
相似回答