问题: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;
}