这是我写的之前要求用户输入一个1990年往后的年月日的判定,你参考一下。
int judgeYear(int *year, int *month, int *day)
{
do
{
printf("Enter the Data (yy-mm-dd):\n");
scanf("%d-%d-%d", year, month, day);
if(*year >= 1990 && *month >= 1 && *month <= 12)
{
// 计算天数是否合理
//判定非闰年该月天数是否合理。
switch( *month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(*day >= 1 && *day <= 31)
return 0;
break;
case 4:
case 6:
case 9:
case 11:
if(*day >= 1 && *day <= 30)
return 0;
break;
case 2:
if(runYear(*year))
{
if(*day >=1 && *day <=29)
return 0;
}
else
{
if(*day >= 1 && *day <= 28)
return 0;
}
break;
}
}
printf("Data is error.\n");
}while(1);
}
|