version 0.2.16
[fms.git] / include / datetime.h
index 032fe5d..cd6df2c 100644 (file)
@@ -28,7 +28,7 @@ public:
        void Add(const int seconds=0, const int minutes=0, const int hours=0, const int days=0, const int months=0, const int years=0);\r
        \r
        void Set(const int year=1970, const int month=1, const int day=1, const int hour=0, const int minute=0, const int second=0);\r
-       void Set(const time_t &timet);\r
+       void SetT(const time_t &timet);\r
        void Set(const struct tm *stm);\r
        void Set(const std::string &datestring);        // method only will work with a select few basic input formats\r
        \r
@@ -67,25 +67,28 @@ public:
        DateTime &operator-=(const double &rhs);\r
        DateTime &operator-=(const DateTime &rhs);\r
        \r
-       const bool operator==(const DateTime &rhs) const { return m_timet==rhs.m_timet; }\r
+       const bool operator==(const DateTime &rhs) const { return *this==rhs.m_tm; }\r
        const bool operator==(const time_t &rhs) const { return m_timet==rhs; }\r
        const bool operator==(const struct tm &rhs) const;\r
        \r
-       const bool operator<(const DateTime &rhs) const { return (m_timet<rhs.m_timet); }\r
+       const bool operator<(const DateTime &rhs) const { return (*this<rhs.m_tm); }\r
        const bool operator<(const time_t &rhs) const { return (m_timet<rhs); }\r
+       const bool operator<(const struct tm &rhs) const;\r
        \r
-       const bool operator<=(const DateTime &rhs) const { return (*this<rhs || *this==rhs); }\r
+       const bool operator<=(const DateTime &rhs) const { return (*this<rhs.m_tm || *this==rhs.m_tm); }\r
        const bool operator<=(const time_t &rhs) const { return (m_timet<=rhs); }\r
+       const bool operator<=(const struct tm &rhs) const { return (*this<rhs || *this==rhs); }\r
        \r
-       const bool operator>(const DateTime &rhs) const { return (m_timet>rhs.m_timet); }\r
+       const bool operator>(const DateTime &rhs) const { return !(*this<=rhs.m_tm); }\r
        const bool operator>(const time_t &rhs) const { return (m_timet>rhs); }\r
        \r
-       const bool operator>=(const DateTime &rhs) const { return (*this>rhs || *this==rhs); }\r
+       const bool operator>=(const DateTime &rhs) const { return !(*this<rhs.m_tm); }\r
        const bool operator>=(const time_t &rhs) const { return (m_timet>=rhs); }\r
        \r
 private:\r
+       const time_t TimeGM(struct tm *gmtimein);\r
 \r
-       time_t m_timet;\r
+       time_t m_timet;         // don't use timet for any comparisons\r
        struct tm m_tm;\r
 };\r
 \r