#include<iostream>
using namespace std;
class Date {
public:
Date(int year=1970,int month=1,int day=1); // 默认构造函数,将日期初始化为1970年1月1日
Date(const Date& d);
void display(); // 显示日期
int getMonth(int year,int month) const; // 返回日期中的年,月,日
int dayOfYear(); // 返回这是一年中的第多少天
private:
int _year;
int _month;
int _day;
};
Date::Date(int y,int m,int d){
if(_year>=1970&&_month>0&&_month<13&&_day>0&&_day<getMonth(year,month))
{
this->year=year;
this->month=month;
this->day=day;
}
}
int Date::getMonth(int year,int month){
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}
if(month==2&&year%400==0||(year%4==0&&year%100!=0)){
++a[2];
}
return a[month]
}
votd Date::display(){
cout<<_year<<"-"<<_month<<"-"<<_day<<endl;
}
Date::Date(const Date& d)
{
_year=d._year;
_month=d._month;
_day=d._day;
}
int Date::dayOfYear()
{
int total=0;
int db[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
cin>>_year;cout<<"-";cin>>_month;cout<<"-";cin>>_day;
if(year%400==0||(year%4==0&&year%100!=0)
{
for(int i=0;i<m-1;i++){
total+=db[1][i];
}
} else
{
for(int i=0;i<m-1;i++)
{
total+=db[0][i];
}
}
total+=d;
cout<<_year<<"-"<<_month<<"-"<<_day<<endl;
return 0;
}
int main()
{
Date(1970,1,1);
Date(2019,4,30);
Date(2019,5,1);
return 0;
}