问题:C++判断一个日期是某一年的多少天(含闰年判断)

本程序通过VC++ 6.0编译与测试,具体代码如下:

#include <iostream>
using namespace std;
class Date  //声明日期类
{
private:
    int year;
    int month;
    int day;
public:
    void setDate(int y,int m,int d);//设置日期函数
    void printDate();//打印日期函数
    bool isLeap();//判断是否是闰年的函数
    int NumberofDate();//计算多少天的函数
    
};

void Date::setDate(int y,int m,int d)
{
    year=y;
    month=m;
    day=d;
}

void Date::printDate()
{
	cout<<year<<"年"<<month<<"月"<<day<<"日";
}

bool Date::isLeap()
{
    if((year%4==0&&year%100!=0)||(year%400==0))
    {
        return true;
    }
    else
    {
        return false;
    }
}

int Date::NumberofDate()
{
    int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    if(isLeap())
    {
        a[1]=29;
    }
    int number=0;
    for(int i=0;i<month-1;i++)
    {
        number+=a[i];
    }
    number+=day;
	return number;
}   

int main()
{
	Date date;
	int y,m,d;
	cout<<"please input a date"<<endl;
	cin>>y>>m>>d;
	date.setDate(y,m,d);
	date.printDate();
	cout<<"是"<<y<<"年的第"<<date.NumberofDate()<<"天"<<endl;
	return 0;
}