#删除 MyTime 类中的 output 方法,通过重载 operator<<运算符进行替代。删
除 MyTime 类的 getTimeSpan 方法,通过重载 operator-运算符进行替代。
class MyTime{
public:
MyTime();
MyTime(int h,int m); //通过指定 h 和 m 构造 MyTime 对象
MyTime( int minutes ); //通过指定分钟数构造 MyTime 对象
void setTime(int h, int m); //设置新的时间
void output() const; //以 hh:mm 格式输出时间
friend std::ostream& operator<<( std::ostream& out, const MyTime& t);
int getHour() const; //获得小时
int getMinute() const; //获得分钟
int getTotalMinutes() const; //获得从 0 点 0 分起的总分钟数
MyTime getTimeSpan(const MyTime &newTime )const; //计算时间差
MyTime operator-(const MyTime& newTime)const; //计算时间差
private:
int hour;
int minute;
void normalizeTime(); //规范化小时为 0~23,分钟为 0~59
};
class MyTime{
public:
MyTime();
MyTime(int h, int m); // 通过指定 h 和 m 构造 MyTime 对象
MyTime(int minutes); // 通过指定分钟数构造 MyTime 对象
void setTime(int h, int m); // 设置新的时间
friend std::ostream& operator<<(std::ostream& out, const MyTime& t);
int getHour() const; // 获得小时
int getMinute() const; // 获得分钟
int getTotalMinutes() const; // 获得从 0 点 0 分起的总分钟数
MyTime operator-(const MyTime& newTime) const; // 计算时间差
private:
int hour;
int minute;
void normalizeTime(); // 规范化小时为 0~23,分钟为 0~59
};
std::ostream& operator<<(std::ostream& out, const MyTime& t) {
out << std::setfill('0') << std::setw(2) << t.hour << ':' << std::setw(2) << t.minute;
return out;
}
MyTime MyTime::operator-(const MyTime& newTime) const {
int totalMinutes = getTotalMinutes() - newTime.getTotalMinutes();
return MyTime(totalMinutes);
}