定义时间类 Time时间的表示采用 24 小时制。重载运算符和实现时间的输出和输入;重载运算符+和-实现时间推后和提前若干分钟;重载运算符++和--实现当前时间推后和提前 1 小时;重载、、==来判断两个时间之间大于、小于、等于以及不等于的关系
。
#include<iostream>
using namespace std;
class Time {
private:
int hour;
int minute;
public:
Time(int h=0, int m=0):hour(h), minute(m) {}
friend istream& operator >> (istream& in, Time& t);
friend ostream& operator << (ostream& out, const Time& t);
Time operator + (int m);
Time operator - (int m);
Time operator ++ ();
Time operator -- ();
bool operator > (const Time& t);
bool operator < (const Time& t);
bool operator == (const Time& t);
bool operator != (const Time& t);
};
istream& operator >> (istream& in, Time& t) {
in >> t.hour >> t.minute;
return in;
}
ostream& operator << (ostream& out, const Time& t) {
out << t.hour << ":" << t.minute;
return out;
}
Time Time::operator + (int m) {
int h = hour;
int mi = minute + m;
if(mi >= 60) {
h += mi / 60;
mi %= 60;
}
return Time(h, mi);
}
Time Time::operator - (int m) {
int h = hour;
int mi = minute - m;
if(mi < 0) {
h -= (-mi) / 60 + 1;
mi = 60 - (-mi) % 60;
}
return Time(h, mi);
}
Time Time::operator ++ () {
hour = (hour + 1) % 24;
return *this;
}
Time Time::operator -- () {
hour = (hour - 1 + 24) % 24;
return *this;
}
bool Time::operator > (const Time& t) {
if(hour > t.hour) {
return true;
}
else if(hour == t.hour && minute > t.minute) {
return true;
}
else {
return false;
}
}
bool Time::operator < (const Time& t) {
if(hour < t.hour) {
return true;
}
else if(hour == t.hour && minute < t.minute) {
return true;
}
else {
return false;
}
}
bool Time::operator == (const Time& t) {
if(hour == t.hour && minute == t.minute) {
return true;
}
else {
return false;
}
}
bool Time::operator != (const Time& t) {
return !(*this == t);
}
int main() {
Time t1(10, 30);
Time t2;
cout << "请输入时间(小时和分钟,用空格隔开):" << endl;
cin >> t2;
cout << "t1 = " << t1 << endl;
cout << "t2 = " << t2 << endl;
Time t3 = t1 + 60;
Time t4 = t1 - 60;
cout << "t1 + 60 = " << t3 << endl;
cout << "t1 - 60 = " << t4 << endl;
++t1;
--t2;
cout << "++t1 = " << t1 << endl;
cout << "--t2 = " << t2 << endl;
if(t1 > t2) {
cout << "t1 > t2" << endl;
}
else if(t1 < t2) {
cout << "t1 < t2" << endl;
}
else {
cout << "t1 == t2" << endl;
}
return 0;
}
``
原文地址: https://www.cveoy.top/t/topic/ev51 著作权归作者所有。请勿转载和采集!