#include <stdio.h>
int date[3];
int isleap(int year){
int leap;
if(year%400 == 0)
leap = 1;
else
if(year%100 == 0)
leap = 0;
else
if(year%4 == 0)
leap = 1;
else
leap = 0;
return leap;
}
int daysInMonth(int year,int month){
int Febdays,days;
if(isleap(year))
Febdays = 29;
else
Febdays = 28;
switch(month){
case 1: days = 31;break;
case 2: days = Febdays;break;
case 3: days = 31;break;
case 4: days = 30;break;
case 5: days = 31;break;
case 6: days = 30;break;
case 7: days = 31;break;
case 8: days = 31;break;
case 9: days = 30;break;
case 10: days = 31;break;
case 11: days = 30;break;
case 12: days = 31;break;
default: days = 30;break;
}
return days;
}
int islegal(int date[3]){
int year,month,day,legal;
year = date[0];
month = date[1];
day = date[2];
if((month>=1)&&(month<=12)){
if((day>=1)&&(day<=daysInMonth(year,month)))
legal = 1;
else
legal = 0;
}
else
legal = 0;
return legal;
}
void dateinput(int date[3]){
int inputdate[3];
while(1){
printf("请输入年份\n");
scanf("%d",&inputdate[0]);
printf("请输入月份\n");
scanf("%d",&inputdate[1]);
printf("请输入日期\n");
scanf("%d",&inputdate[2]);
if(islegal(inputdate)){
date = inputdate;
break;
}
else
printf("输入格式有误,请重新输入\n");
}
}
int main () {
int i;
dateinput(date);
for(i=0;i<3;i++)
printf("%d",date[i]);
return 0;
}