59 lines
2.0 KiB
C
59 lines
2.0 KiB
C
|
#ifndef ATB_TIME_H_INCLUDED
|
||
|
#define ATB_TIME_H_INCLUDED
|
||
|
|
||
|
#include <QDateTime>
|
||
|
|
||
|
class ATBTime {
|
||
|
QDateTime const m_end;
|
||
|
mutable QDateTime m_time;
|
||
|
|
||
|
public:
|
||
|
explicit ATBTime();
|
||
|
explicit ATBTime(int h, int m, int s = 0, int ms = 0);
|
||
|
|
||
|
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 msecsTo(QTime t) const { return m_time.time().msecsTo(t); }
|
||
|
|
||
|
bool setHMS(int h, int m, int s, int ms = 0);
|
||
|
|
||
|
bool isNull() const { return m_time.time().isNull(); }
|
||
|
bool isValid() const { return m_time.time().isValid(); }
|
||
|
|
||
|
|
||
|
QTime addMSecs(int ms) const;
|
||
|
QTime addMSecs(int ms);
|
||
|
|
||
|
QTime addSecs(int s) const;
|
||
|
QTime addSecs(int s);
|
||
|
|
||
|
int msecsSinceStartOfDay() const;
|
||
|
QString toString(Qt::DateFormat format = Qt::TextDate) const;
|
||
|
|
||
|
|
||
|
static bool isValid(int h, int m, int s, int ms = 0);
|
||
|
|
||
|
static QTime currentTime() { return QDateTime::currentDateTime().time(); }
|
||
|
|
||
|
static constexpr QTime fromMSecsSinceStartOfDay(int msecs);
|
||
|
|
||
|
static QTime fromString(QString const &string, Qt::DateFormat format = Qt::TextDate);
|
||
|
static QTime fromString(QString const &string, const QString &format);
|
||
|
|
||
|
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 &in, ATBTime &time);
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif // ATB_TIME_H_INCLUDED
|