时间换算
定义一个时间类time,内有数据成员hour,minute,second,另有成员函数:构造函数用于初始化数据成员,输出函数,运算符重载+(加号),。编写主函数:创建时间对象,再输入秒数 n,通过运算符重载+(减号),计算该时间再过 n 秒后的时间值,时间的表示形式为时:分:秒,超过 24 时从 0 时重新开始计时。
!:n可能小于0
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
class Time
{
private:
int hour,minute,second;
public:
void set(int h,int m,int s)
{
hour=h;minute=m;second=s;
}
void display()
{
cout<<"time:"<<hour<<":"<<minute<<":"<<second<<endl;
}
friend Time operator+(Time&t,int n);
};
Time operator+(Time&t,int n)
{
int all=0;
all=t.hour*3600+t.minute*60+t.second+n;//以总秒数计算
if(all<0)
{
for(;;)
{all=all+3600*24;if(all>0){break;}}
}//n可能小于0
int h,m,s;
h=all/3600;
all=all%3600;
m=all/60;
all=all%60;
s=all;
h=h%24;
Time out;
out.set(h,m,s);
return out;
}
int main()
{
int h,m,s,n=1;
for(;;)
{
cin>>h>>m>>s>>n;
if(h==0&&m==0&&s==0&&n==0){break;}
Time t,out;
t.set(h,m,s);
out=t+n;
out.display();
}
return 0;
}