#include<iostream>
using namespace std;
int months[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}};
class Date{
int day,month,year;
public:
Date(int yea=0,int mont=0,int da=0)
{
year=yea;
month=mont;
day=da;
}
void Add()
{
day+=1;
if((year%100!=0&&year%4==0)||year%400==0)
{
if(months[1][month-1]+1==day)
{day=1;
month+=1;
if(month==13)
month=1;
year+=1;
}
}
else
{
if(months[0][month-1]+1==day)
{day=1;
month+=1;
if(month==13)
month=1;
year+=1;
}
}
}
void set(int ,int,int);
void show()
{
cout<<day<<"/"<<month<<"/"<<year<<endl;
}
};
void Date::set(int a,int b,int c)
{
year=a;
month=b;
day=c;
}
int main()
{
int a,b,c;
cin>>a>>b>>c;
Date kk(a,b,c);
kk.Add();
cout<<"after add ";
kk.show();
int a1,b1,c1;
cin>>a1>>b1>>c1;
kk.set(a1,b1,c1);
kk.Add();
cout<<"after add ";
kk.show();
}
【问题描述】定义一个满足如下要求的Date类
(1)用下面的格式输出日期,如void ShowDate();
日/月/年
(2)可执行在某个日期对象上加一天的操作,如void Add();
(3)可设置该对象为一个新的日期,如void SetDate(int,int,int);
【输入形式】输入原始日期以及新的日期
【输出形式】在主函数里调用成员函数执行加一天的操作,然后输出原始日期加一天后的日期,输出设置日期后的新日期
【样例输入】
2018 11 30
2020 2 9
【样例输出】
after add: 1/12/2018
new date: 9/2/2020
【提示】冒号后面有一个空格