c++计算两个日期相隔的天数

c++计算两个日期相隔的天数,应用友元函数
应用友元函数,一个学生写的,没啥技术。。。

#include<iostream.h>
class Date
{
private:
int year,mouth,day;
public:
Date(int nian,int yue,int ri)//可有可无
{
year=nian;mouth=yue;day=ri;
}
Date();
friend mxh(Date &p1,Date &p2);
~Date(){}
};
Date::Date()//输入
{
int y1,m1,d1;
while(1)// 年
{
cout<<“请输入年”<<endl;
cin>>y1;
if(y1>1700&&y1<=3000)
break;
else
cout<<“请输入合法年”<<endl;
}
while(1)// 月
{
cout<<“请输入月”<<endl;
cin>>m1;
if(m1>0&&m1<=12)
break;
else
cout<<“请输入合法月份”<<endl;
}
while(1)// 日
{
cout<<“请输入日”<<endl;
cin>>d1;
if(m12)
{
if(y1%4
0)
if(d1>0&&d1<=29)
break;
else
if(d1>0&&d1<=28)
break;
break;
}
else if(m11||m13||m15||m17||m18||m110||m112)
if(d1>0&&d1<=31)
break;
else if(m1
4||m16||m19||m111)
if(d1>0&&d1<=30)
break;
else
cout<<“请输入合法日期”<<endl;
}
year=y1;mouth=m1;day=d1;
}
mxh(Date &p1,Date &p2)
{
int nian,yue,ri;
while(p1.year-p2.year!=0) //计算年
{
int i=0;
if(p1.year<p2.year)
{
for(p1.year;p1.year<p2.year;p1.year++)
{
if(p1.year%4
0)
i+=366;
else
i+=365;
}
}
else
{
for(p2.year;p2.year<p1.year;p2.year++)
{
if(p2.year%40)
i+=366;
else
i+=365;
}
}
nian=i;
break;
}
while(1)//计算月
{
int i=0,j=0;
for(p1.mouth-=1;p1.mouth>0;p1.mouth–)
{
switch(p1.mouth)
{
case 1:case 3:case 5:case 7:case 8:case 10:case 12:{i+=31;break;}
case 2:{if(p1.year%4
0)i+=29;else i+=28;break;}
case 4:case 6:case 9:case 11:{i+=30;break;}
//cout<<j<<endl;
}
}
for(p2.mouth-=1;p2.mouth>0;p2.mouth–)
{
switch(p2.mouth)
{
case 1:case 3:case 5:case 7:case 8:case 10:case 12:{j+=31;break;}
case 2:{if(p2.year%4==0)j+=29;else j+=28;break;}
case 4:case 6:case 9:case 11:{j+=30;break;}
}
}
if(p1.year<p2.year)
yue=j-i;
else
yue=i+j;
break;
}
while(1)//日
{
if(p1.year<p2.year)
ri=p2.day-p1.day;
else
ri=p1.day-p2.day;
break;
}
return (nian+yue+ri);
}
void main()
{
Date q1;
Date q2;
cout<<mxh(q1,q2)<<endl;
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值