kalarm/lib
datetime.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "kalarm.h"
00021
00022 #include <kglobal.h>
00023 #include <klocale.h>
00024
00025 #include "datetime.h"
00026
00027 QTime DateTime::mStartOfDay;
00028
00029 QTime DateTime::time() const
00030 {
00031 return mDateOnly ? mStartOfDay : mDateTime.time();
00032 }
00033
00034 QDateTime DateTime::dateTime() const
00035 {
00036 return mDateOnly ? QDateTime(mDateTime.date(), mStartOfDay) : mDateTime;
00037 }
00038
00039 QString DateTime::formatLocale(bool shortFormat) const
00040 {
00041 if (mDateOnly)
00042 return KGlobal::locale()->formatDate(mDateTime.date(), shortFormat);
00043 else if (mTimeValid)
00044 return KGlobal::locale()->formatDateTime(mDateTime, shortFormat);
00045 else
00046 return QString::null;
00047 }
00048
00049 bool operator==(const DateTime& dt1, const DateTime& dt2)
00050 {
00051 if (dt1.mDateTime.date() != dt2.mDateTime.date())
00052 return false;
00053 if (dt1.mDateOnly && dt2.mDateOnly)
00054 return true;
00055 if (!dt1.mDateOnly && !dt2.mDateOnly)
00056 {
00057 bool valid1 = dt1.mTimeValid && dt1.mDateTime.time().isValid();
00058 bool valid2 = dt2.mTimeValid && dt2.mDateTime.time().isValid();
00059 if (!valid1 && !valid2)
00060 return true;
00061 if (!valid1 || !valid2)
00062 return false;
00063 return dt1.mDateTime.time() == dt2.mDateTime.time();
00064 }
00065 return (dt1.mDateOnly ? dt2.mDateTime.time() : dt1.mDateTime.time()) == DateTime::startOfDay();
00066 }
00067
00068 bool operator<(const DateTime& dt1, const DateTime& dt2)
00069 {
00070 if (dt1.mDateTime.date() != dt2.mDateTime.date())
00071 return dt1.mDateTime.date() < dt2.mDateTime.date();
00072 if (dt1.mDateOnly && dt2.mDateOnly)
00073 return false;
00074 if (!dt1.mDateOnly && !dt2.mDateOnly)
00075 return dt1.mDateTime.time() < dt2.mDateTime.time();
00076 QTime t = DateTime::startOfDay();
00077 if (dt1.mDateOnly)
00078 return t < dt2.mDateTime.time();
00079 return dt1.mDateTime.time() < t;
00080 }
|