#include<stdio.h>
int isleap(int y);
int leapdata(int m,int d);
int notleapdata(int m,int d);
struct data
{
	int year,mouth,day;
}; 
int main()
{
	struct data a;
	struct data *p=&a;
	int flag,num;
	printf("Input a data(year mouth day)\n");
	scanf("%d%d%d",&a.year,&a.mouth,&a.day);
	flag=isleap(p->year);
	if(flag==1)
	num=leapdata(p->mouth,p->day);
	else
	num=notleapdata(p->mouth,p->day);
	printf("今天是第%d天\n",num);
	return 0;
}
int isleap(int y)
{
	int check;
	check=(y%400==0)||((y%4==0)&&(y%100!=0));
	return check;
}
int leapdata(int m,int d)
{
	int x;
	switch(m)
			{
			case 1:x=d;break;
			case 2:x=31+d;break;
			case 3:x=31+29+d;break;
			case 4:x=31+29+31+d;break;
			case 5:x=31+29+31+30+d;break;
			case 6:x=31+29+31+30+31+d;break;
			case 7:x=31+29+31+30+31+30+d;break;
			case 8:x=31+29+31+30+31+30+31+d;break;
			case 9:x=31+29+31+30+31+30+31+31+d;break;
			case 10:x=31+29+31+30+31+30+31+31+30+d;break;
			case 11:x=31+29+31+30+31+30+31+31+30+31+d;break;
			case 12:x=31+29+31+30+31+30+31+31+30+31+30+d;break;
			}
			return x;
}
int notleapdata(int m,int d)
{
	int x;
	switch(m)
			{
			case 1:x=d;break;
			case 2:x=31+d;break;
			case 3:x=31+28+d;break;
			case 4:x=31+28+31+d;break;
			case 5:x=31+28+31+30+d;break;
			case 6:x=31+28+31+30+31+d;break;
			case 7:x=31+28+31+30+31+30+d;break;
			case 8:x=31+28+31+30+31+30+31+d;break;
			case 9:x=31+28+31+30+31+30+31+31+d;break;
			case 10:x=31+28+31+30+31+30+31+31+30+d;break;
			case 11:x=31+28+31+30+31+30+31+31+30+31+d;break;
			case 12:x=31+28+31+30+31+30+31+31+30+31+30+d;break;
			}
			return x;
}
