#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;
}
``
定义时间类 Time时间的表示采用 24 小时制。重载运算符和实现时间的输出和输入;重载运算符+和-实现时间推后和提前若干分钟;重载运算符++和--实现当前时间推后和提前 1 小时;重载、、==来判断两个时间之间大于、小于、等于以及不等于的关系

原文地址: https://www.cveoy.top/t/topic/ev51 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录