Add some assinment operators to support assignment of tariff-time-ranges.
This commit is contained in:
		| @@ -4,20 +4,42 @@ | ||||
| #include <QDateTime> | ||||
|  | ||||
| class ATBTime { | ||||
|     QDateTime const m_end; | ||||
|     static QDateTime const m_end; | ||||
|     mutable QDateTime m_time; | ||||
|  | ||||
| public: | ||||
|     explicit ATBTime(); | ||||
|     explicit ATBTime(int h, int m, int s = 0, int ms = 0); | ||||
|     explicit ATBTime(QString const &time); | ||||
|     explicit ATBTime(QTime const &time); | ||||
|  | ||||
|     explicit ATBTime(ATBTime const &atbTime) { | ||||
|         m_time = atbTime.m_time; | ||||
|     } | ||||
|  | ||||
|     ATBTime &operator=(ATBTime && atbTime) { | ||||
|         m_time = std::move(atbTime.m_time); | ||||
|         return *this; | ||||
|     } | ||||
|  | ||||
|     ATBTime &operator=(ATBTime const &atbTime) { | ||||
|         m_time = atbTime.m_time; | ||||
|         return *this; | ||||
|     } | ||||
|  | ||||
|  | ||||
|     int hour() const { return m_time.time().hour(); } | ||||
|     int minute() const { return m_time.time().minute(); } | ||||
|     int second() const { return m_time.time().second(); } | ||||
|     int msec() const { return m_time.time().msec(); } | ||||
|  | ||||
|     int secsTo(QTime t) const { return m_time.time().secsTo(t); } | ||||
|     int secsTo(QString const &t) const { | ||||
|         if (t == "24:00:00") { | ||||
|             return m_time.secsTo(m_end); | ||||
|         } | ||||
|         return m_time.time().secsTo(QTime::fromString(t, Qt::ISODate)); | ||||
|     } | ||||
|  | ||||
|     int msecsTo(QTime t) const { return m_time.time().msecsTo(t); } | ||||
|  | ||||
|     bool setHMS(int h, int m, int s, int ms = 0); | ||||
| @@ -48,10 +70,12 @@ public: | ||||
|     friend bool operator!=(const ATBTime &lhs, const ATBTime &rhs) noexcept; | ||||
|     friend bool operator<(const ATBTime &lhs, const ATBTime &rhs) noexcept; | ||||
|     friend bool operator<=(const ATBTime &lhs, const ATBTime &rhs) noexcept; | ||||
|     friend bool operator>=(const ATBTime &lhs, const ATBTime &rhs) noexcept; | ||||
|     friend bool operator<(const ATBTime &lhs, const ATBTime &rhs) noexcept; | ||||
|     friend bool operator>(const ATBTime &lhs, const ATBTime &rhs) noexcept; | ||||
|     friend bool operator==(const ATBTime &lhs, const ATBTime &rhs) noexcept; | ||||
|     friend QDataStream &operator<<(QDataStream &out, ATBTime time); | ||||
|     friend QDataStream &operator<<(QDataStream &out, ATBTime const &time); | ||||
|     friend QDebug &operator<<(QDebug &out, ATBTime const &time); | ||||
|     friend QDataStream &operator>>(QDataStream &in, ATBTime &time); | ||||
| }; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user