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

2025-01-01 13:46:46
推荐回答(4个)
回答1:

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:

1,判断第5,8个是否为-
2,月份是否<13
3,号是否 满足 13578十腊 < 32, 46911<31 如果是闰年2<30。如果不是闰年2<30

回答3:

如果test为你输入的时间信息用
test.indexof("-")
判断是否是要求的格式

回答4:

#include
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;
}