kplato
kptdatetime.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef KPTDATETIME_H
00020 #define KPTDATETIME_H
00021
00022 #include <qdatetime.h>
00023 #include "kptduration.h"
00024
00025 namespace KPlato
00026 {
00027
00028 class Duration;
00029
00033 class DateTime : public QDateTime {
00034
00035 public:
00036 DateTime();
00037 DateTime(const QDateTime &dt);
00038 DateTime(const QDate &date, const QTime &time);
00039
00043 DateTime operator+(const Duration &duration) const;
00047 DateTime operator-(const Duration &duration) const ;
00051 Duration operator-(const DateTime &dt) const { return duration(dt); }
00052 Duration operator-(const DateTime &dt) { return duration(dt); }
00053
00054 DateTime &operator+=(const Duration &duration);
00055 DateTime &operator-=(const Duration &duration);
00056
00057 static DateTime fromString(const QString dts) {
00058 QDateTime dt;
00059 if (dts.isEmpty())
00060 return DateTime();
00061 dt = QDateTime::fromString(dts, Qt::ISODate);
00062 if (dt.isValid())
00063 return DateTime(dt);
00064 return DateTime(QDateTime::fromString(dts));
00065 }
00066 private:
00067
00068 Duration duration(const DateTime &dt) const;
00069 void add(const Duration &duration);
00070 void subtract(const Duration &duration);
00071
00072 };
00073
00074 }
00075
00076 #endif
|