c++用运算符重载写日期类,可以实现日期减,整数加日期 和日期加整数 10

 我来答
兔兔蜜桃酱
推荐于2018-03-28 · TA获得超过779个赞
知道小有建树答主
回答量:278
采纳率:0%
帮助的人:228万
展开全部
#include<iostream.h>
static int dys[]={31,28,31,30,31,30,31,31,30,31,30,31};
class date
{
int yr,mo,da;
public:
date(int y,int m,int d)
{
yr=y; mo=m; da=d;
}
date() {}
void disp()
{
cout<<yr<<"年"<<mo<<"月"<<da<<"日"<<endl;
}
date operator + (int day)
{
date dt=*this;
day+=dt.da;
while (day>dys[dt.mo-1])
{
day-=dys[dt.mo-1];
dt.mo++;
if (dt.mo==13)
{
dt.mo==1;
dt.yr++;
}
}
dt.da=day;
return dt;
}
date operator - (int day)
{
date dt=*this;
day=dt.da-day;
while (day<=0)
{
day+=dys[dt.mo-1];
dt.mo--;
if (dt.mo==0)
{
dt.mo=12;
dt.yr--;
}
}
dt.da=day;
return dt;
}
};

void main()
{
int y,m,d,a,b;
cout<<"输入年月日:";
cin>>y>>m>>d;
date d1(y,m,d),d2,d3;
d1.disp();
cout<<"输入要加的天数(整数):";
cin>>a;
d2=d1+a;
d2.disp();
cout<<"输入要减的天数(整数):";
cin>>b;
d3=d1-b;
d3.disp();
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
追星者uJ
2018-06-26
知道答主
回答量:1
采纳率:0%
帮助的人:852
引用wsxxfttt的回答:
#include<iostream.h>
static int dys[]={31,28,31,30,31,30,31,31,30,31,30,31};
class date
{
int yr,mo,da;
public:
date(int y,int m,int d)
{
yr=y; mo=m; da=d;
}
date() {}
void disp()
{
cout<<yr<<"年"<<mo<<"月"<<da<<"日"<<endl;
}
date operator + (int day)
{
date dt=*this;
day+=dt.da;
while (day>dys[dt.mo-1])
{
day-=dys[dt.mo-1];
dt.mo++;
if (dt.mo==13)
{
dt.mo==1;
dt.yr++;
}
}
dt.da=day;
return dt;
}
date operator - (int day)
{
date dt=*this;
day=dt.da-day;
while (day<=0)
{
day+=dys[dt.mo-1];
dt.mo--;
if (dt.mo==0)
{
dt.mo=12;
dt.yr--;
}
}
dt.da=day;
return dt;
}
};

void main()
{
int y,m,d,a,b;
cout<<"输入年月日:";
cin>>y>>m>>d;
date d1(y,m,d),d2,d3;
d1.disp();
cout<<"输入要加的天数(整数):";
cin>>a;
d2=d1+a;
d2.disp();
cout<<"输入要减的天数(整数):";
cin>>b;
d3=d1-b;
d3.disp();
}
展开全部
该程序有潜在的bug 若加或减的天数非常大会怎样? 比如说天数 达到 一千以上 看看这个年份和月份的进位会不会出现错误?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式