#include <iostream>
using namespace std;
#define error 2
int jisuantianshu(int y,int m,int d);
niandexingzhi(int y,int m,int d);
yuefenfenxi(int m,int d);
panduanzifu(int y);
//主函数
void main()
{
int y,m,d,t; //y、m、d分别表示年月日,t用来表示所输入d为当年第几天
cout<<"*********程序功能:输入年、月、日,打印出该天是那年的第几天**********"<<endl;
do{
cout<<"\n\n请输入年月日,例如2008 8 6 "<<endl;
cout<<"按0退出!"<<endl;
cin>>y;
if (0==y)
exit(0);
cin>>m>>d;
if(panduanzifu(y)==error)//判断字符,判断用户输入的是否为合法的整型数据,若为字符及其他则报错
{ continue;}
if(niandexingzhi(y,m,d)==error)//年的性质,判断平年还是闰年
{ continue;}
if(yuefenfenxi(m,d)==error) //调用月份分析函数
{ continue;}
t=jisuantianshu(y,m,d);
if(2!=t && ((y%400==0)||(y%4==0)&&(y%100!=0)))
//cout<<m<<"月"<<d<<"号是"<<y<<"年的第"<<t<<"天\n";
{
if (m<=2)
{cout<<m<<"月"<<d<<"号是"<<y<<"年的第"<<t<<"天\n";}
else
cout<<m<<"月"<<d<<"号是"<<y<<"年的第"<<t<<"天\n";}
else if(m<=2)
cout<<m<<"月"<<d<<"号是"<<y<<"年的第"<<t<<"天\n";
else
cout<<m<<"月"<<d<<"号是"<<y<<"年的第"<<t-1<<"天\n";
if(2==t)
{cout<<"月份输入有误,请重新输入!"<<endl;}
//cout<<"m="<<m;//测试用
jisuantianshu(y,m,d);
}while(1);