kplato
kptdatetime.cc00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "kptdatetime.h"
00021
00022 #include <kdebug.h>
00023
00024 namespace KPlato
00025 {
00026
00027 DateTime::DateTime() : QDateTime() {
00028 }
00029
00030 DateTime::DateTime(const QDateTime &dt) : QDateTime(dt.date(), dt.time()) {
00031 }
00032
00033 DateTime::DateTime(const QDate &date, const QTime &time) : QDateTime(date, time) {
00034 }
00035
00036 void DateTime::add(const Duration &duration) {
00037 if (isValid())
00038 *this = addSecs(duration.seconds());
00039
00040 }
00041
00042 void DateTime::subtract(const Duration &duration) {
00043 if (isValid())
00044 *this = addSecs(-duration.seconds());
00045
00046 }
00047
00048 Duration DateTime::duration(const DateTime &dt) const {
00049 Duration dur;
00050 if (isValid() && dt.isValid()) {
00051 if (dt < *this) {
00052 dur.addDays(dt.daysTo(*this));
00053 dur.addSeconds(dt.time().secsTo(time()));
00054 } else {
00055 dur.addDays(daysTo(dt));
00056 dur.addSeconds(time().secsTo(dt.time()));
00057 }
00058 }
00059 return dur;
00060 }
00061
00062 DateTime DateTime::operator+(const Duration &duration) const {
00063 DateTime d(*this);
00064 d.add(duration);
00065 return d;
00066 }
00067
00068 DateTime& DateTime::operator+=(const Duration &duration) {
00069 add(duration);
00070 return *this;
00071 }
00072
00073 DateTime DateTime::operator-(const Duration &duration) const {
00074 DateTime d(*this);
00075 d.subtract(duration);
00076 return d;
00077 }
00078
00079 DateTime& DateTime::operator-=(const Duration &duration) {
00080 subtract(duration);
00081 return *this;
00082 }
00083
00084 }
|