#include<iostream>
using namespace std;
class Time//时间类
{
public:
friend istream & operator>>(istream &in,Time &t);//重载“>>”运算符为友元函数
friend ostream & operator<<(ostream &cout,Time&t);//重载“<<”运算符为友元函数
Time();//不带参数的构造函数
Time(int h,int m,int s);//对时间的规定函数
Time operator+(Time &t);//声明“+”重载函数
Time operator-(Time &t);//声明“-”重载函数
private:
int hour;
int minute;
int second;
};
Time::Time()
{
hour=0;
minute=0;
second=0;
}
Time::Time(int h,int m,int s)
{
hour=h;
minute=m;
second=s;
if(hour>=24)
{
hour=hour%24;
}
if(hour<0)
{
hour=(hour+24)%24;
}
if(minute>=60)
{
hour=hour+1;
minute=minute%60;
}
if(minute<0)
{
hour=hour-1;
minute=minute+60;
}
if(second<0){
minute=minute-1;
second=second+60;}
if(second>=60)
minute=minute+1;
second=second%60;
}
Time Time::operator+(Time &t)//"+"重载的详细过程
{
return Time(hour,minute+t.minute,second+t.second);
}
Time Time::operator-(Time &t)//"-"重载的详细过程
{
return Time(hour-t.hour,minute-t.minute,second-t.second);
}
istream & operator>>(istream &cin,Time &t)//">>"重载的详细过程
{
int h,m,s;
char x,y;
cout<<"请输入时间,例如:";
cout<<"13:55:45"<<endl;
cin>>h>>x>>m>>y>>s;
t.hour=h;
t.minute=m;
t.second=s;
return cin;
}
ostream & operator<<(ostream & cout,Time&t)//"<<"重载的详细过程
{
cout<<t.hour<<':'<<t.minute<<':'<<t.second<<endl;
return cout;
}
int main()
{
Time a,b,c,d;
cin>>a>>b;
cout<<"两个时间相加得到:";
c=a+b;
cout<<c;
cout<<"两个时间相减得到:";
d=a-b;
cout<<d;
return 0;
}
// 11:35:46
// 15:48:55