65,187
社区成员




#ifndef MYTIME0_H_
#define MYTIME0_H_
#include<iostream>
using namespace std;
class Time
{
private:
int hours;
int minutes;
public:
Time();
Time(int hr,int min = 0);
void addmin(int min);
void addhr(int hr);
void reset(int hr = 0,int min = 0);
Time sum(const Time & t);
Time operator+(const Time & t);
Time operator-(const Time & t);
Time operator*(unsigned int n);
friend Time operator*(unsigned int n,Time & t){return t * n;}
void show()const;
friend ostream & operator<<(ostream & os,const Time & t);
};
#endif
#include<iostream>
#include"mytime0.h"
using namespace std;
Time::Time()
{
hours = minutes = 0;
}
Time::Time(int hr,int min)
{
hours = hr;
minutes = min;
}
void Time::addmin(int min)
{
minutes += min;
hours += minutes / 60;
minutes %= 60;
}
void Time::addhr(int hr)
{
hours += hr;
}
void Time::reset(int hr,int min)
{
hours = hr;
minutes = min;
}
Time Time::sum(const Time & t)
{
Time sm;
sm.minutes = minutes + t.minutes;
sm.hours =hours + t.hours + sm.minutes / 60;
sm.minutes %= 60;
return sm;
}
Time Time::operator+(const Time & t)
{
Time sm;
sm.minutes = minutes + t.minutes;
sm.hours =hours + t.hours + sm.minutes / 60;
sm.minutes %= 60;
return sm;
}
Time Time::operator-(const Time & t)
{
Time sub;
sub.minutes = minutes - t.minutes;
if(sub.minutes > 0)
sub.hours = hours - t.hours;
else{
sub.minutes += 60;
sub.hours = hours - t.hours - 1;
}
return sub;
}
Time Time::operator*(unsigned int n)
{
Time mul;
mul.minutes = minutes * n;
mul.hours = hours * n + mul.minutes/60;
mul.minutes %= 60;
return mul;
}
void Time::show()const
{
cout<<"it's "<<hours<<" hour(s),"<<minutes<<" minute(s)"<<endl;
}
ostream & operator<<(ostream & os,const Time & t)
{
os<<"it's "<<t.hours<<" hour(s),"<<t.minutes<<" minute(s)"<<endl;//错误行,咋回事阿??
return os;
}