#include /*================================================================*/
void GetYearMonth(char *str, int *Year, int *Month)
{
int k=0;
int mon_flag=0;
int year=0,month=0;
while(str[k]!='\0')
{
/****************************************/
if(str[k]>='0'&& str[k]<='9')
{
if(!mon_flag) { year = year*10 + str[k] - '0'; }
else { month = month*10 + str[k] - '0'; }
}
else if(str[k]=='\\' && mon_flag==0)
{
mon_flag = 1;
}
else if(str[k]==' '&&( (k>=1&&str[k-1]!=' ') || (str[k+1]!=' ')))
{
}
else
{
printf("\nInput error !!!\n");
return 0;
}
/****************************************/
k++;
}
if(month<=0||month>=13) /* month error check */
{
*Year = 0;
*Month = 0;
printf("\nInput error !!!\n");
return;
}
*Year = year;
*Month = month;
return;
}
/*================================================================*/
int FindDayOfMonth(int year, int month)
{
int day_of_month = 30;
if(month==1||month==3||month==5||month==7||
month==8||month==10||month==12)
{
day_of_month = 31;
}
else if(month==2)
{
if( (year%400==0)||(year%100!=0&&year%4==0) )
{
day_of_month = 29;
}
else
{
day_of_month = 28;
}
}
return day_of_month;
}
/*================================================================*/
int main()
{
char str[100];
int k;
int year,month,day_of_month;
for(k=0;k<100;k++) { str[k]='\0'; }
printf("Please input the year and month,\nsuch as : 2008\\2 or 2008 \\ 2\n");
gets(str);
GetYearMonth(str, &year, &month);
day_of_month = FindDayOfMonth(year, month);
printf("\nyear = %d, month = %d\nday of month = %d\n",year,month,day_of_month);
getchar();
return 0;
}
/*================================================================*/