定义一个日期类Date满足:
(1)能设置日期;
(2)能以“年/月/日”格式输出日期;
(3)能对某一日期进行加一天的操作;
(4)能对某一日期进行减一天的操作。
最后编写一个测试程序进行测试(要求进行日期设置或运算后能显示日期)。
#include <iostream.h>
class Date
{
public:
Date(int NewY,int NewM,int NewD)
{Year=NewY;Month=NewM;Day=NewD;}
void ShowDate()
{cout<<"今天是"<<Year<<"年"<<Month<<"月"<<Day<<"日"<<endl;}
void ShowTomorrow()
{cout<<"明天是"<<Year<<"年"<<Month<<"月"<<Day<<"日"<<endl;}
void ShowYesterday()
{cout<<"昨天是"<<Year<<"年"<<Month<<"月"<<Day<<"日"<<endl;}
private:
int Year,Month,Day;
};
//主函数
void main()
{
int y,m,d;
cout<<"1.设置日期:输入年、月、日:/n";
cin>>y>>m>>d;
//设置日期
if(y>0&&m>0&&m<13&&d>0&&d<32)
{
Date set(y,m,d);//设置日期
set.ShowDate();//输出日期
//对某一日期进行加一天
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 9:
case 11:
if(d<31&&d>0)
{
Date Tomorrow(y,m,d+1);
Tomorrow.ShowTomorrow();
}
else if(d=31)
{
Date Tomorrow(y,m+1,1);
Tomorrow.ShowTomorrow();
}
break;
case 2:
if(d<28&&d>0)
{
Date Tomorrow(y,m,d+1);
Tomorrow.ShowTomorrow();
}
else if(d=28)
{
Date Tomorrow(y,m+1,1);
Tomorrow.ShowTomorrow();
}
else if(d=29)
{
Date Tomorrow(y,m+1,1);
Tomorrow.ShowTomorrow();
}
break;
case 4:
case 6:
case 8:
case 10:
if(d<30&&d>0)
{
Date Tomorrow(y,m,d+1);
Tomorrow.ShowTomorrow();
}
else if(d=30)
{
Date Tomorrow(y,m+1,1);
Tomorrow.ShowTomorrow();
}
break;
case 12:
if(d<30&&d>0)
{
Date Tomorrow(y,m,d+1);
Tomorrow.ShowTomorrow();
}
else if(d=30)
{
Date Tomorrow(y+1,1,1);
Tomorrow.ShowTomorrow();
}
break;
}
//对某一日期进行减一天
switch(m)
{
case 1:
if(d>1&&d<32)
{
Date Yesterday(y,m,d-1);
Yesterday.ShowYesterday();
}
else if(d=1)
{
Date Yesterday(y-1,12,30);
Yesterday.ShowYesterday();
}
break;
case 3:
if(d>1&&d<32)
{
Date Yesterday(y,m,d-1);
Yesterday.ShowYesterday();
}
else if(d=1)
{
if((y%4==0&&y%100!=0)||y%400==0)
{
Date Yesterday(y,m-1,29);
Yesterday.ShowYesterday();
}
else
{
Date Yesterday(y,m-1,28);
Yesterday.ShowYesterday();
}
}
break;
case 5:
case 7:
case 9:
case 11:
if(d>1&&d<32)
{
Date Yesterday(y,m,d-1);
Yesterday.ShowYesterday();
}
else if(d=1)
{
Date Yesterday(y,m-1,30);
Yesterday.ShowYesterday();
}
break;
case 2:
case 4:
case 6:
case 8:
case 10:
case 12:
if(d>1&&d<31)
{
Date Yesterday(y,m,d-1);
Yesterday.ShowYesterday();
}
else if(d=1)
{
Date Yesterday(y,m-1,31);
Yesterday.ShowYesterday();
}
break;
}
}
else cout<<"Error!/n";
}