#include<stdio.h>
#define leapyear(year) ((((year) % 400 == 0) || ((year) % 4 == 0) && ((year) % 100 != 0))?1:0)
unsigned char checkvalid(int year, int month, int day)
{
if ((year < 0) || (month < 1) || (month > 12) ||(day < 1) || (day > 31))
return 0;
switch (month)
{
case 4:
case 6:
case 9:
case 11:
if (day > 30)
return 0;
break;
case 2:
if (leapyear(year))
{
if (day > 29)
return 0;
}
else
{
if (day > 28)
return 0;
}
break;
}
return 1;
}
int getdays(int year, int month, int day)
{
int sum = 0;
if (!checkvalid(year,month,day))
return -1;
switch (month)
{
case 12: sum += 30;
case 11: sum += 31;
case 10: sum += 30;
case 9: sum += 31;
case 8: sum += 31;
case 7: sum += 30;
case 6: sum += 31;
case 5: sum += 30;
case 4: sum += 31;
case 3: sum += 28 + leapyear(year);
case 2: sum += 31;
case 1: sum += day;
}
return sum;
}
int main(void)
{
printf("%d\n",getdays(0,1,1));
printf("%d\n",getdays(1,0,1));
printf("%d\n",getdays(1,1,0));
printf("%d\n",getdays(1600,14,1));
printf("%d\n",getdays(2000,3,1));
printf("%d\n",getdays(2001,3,1));
return 0;
}