9 Month 1=Jan,2=Feb,etc
\r
10 Day 1 to last day of month
\r
15 WeekDay 0=Sunday,1=Monday,etc
\r
16 YearDay 1=Jan 1st, 2=Jan 2nd, etc
\r
24 DateTime(const time_t &timet);
\r
25 DateTime(const struct tm *stm);
\r
28 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
30 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
31 void SetT(const time_t &timet);
\r
32 void Set(const struct tm *stm);
\r
33 void Set(const std::string &datestring); // method only will work with a select few basic input formats
\r
35 void SetToLocalTime();
\r
38 const int GetYear() const { return m_tm.tm_year+1900; }
\r
39 void SetYear(const int year) { m_tm.tm_year=year-1900; }
\r
40 const int GetMonth() const { return m_tm.tm_mon+1; }
\r
41 void SetMonth(const int month) { m_tm.tm_mon=month-1; }
\r
42 const int GetDay() const { return m_tm.tm_mday; }
\r
43 void SetDay(const int day) { m_tm.tm_mday=day; }
\r
44 const int GetWeekDay() const { return m_tm.tm_wday; }
\r
45 void SetWeekDay(const int weekday) { m_tm.tm_wday=weekday; }
\r
46 const int GetYearDay() const { return m_tm.tm_yday+1; }
\r
47 void SetYearDay(const int yearday) { m_tm.tm_yday=yearday-1; }
\r
48 const int GetHour() const { return m_tm.tm_hour; }
\r
49 void SetHour(const int hour) { m_tm.tm_hour=hour; }
\r
50 const int GetMinute() const { return m_tm.tm_min; }
\r
51 void SetMinute(const int minute) { m_tm.tm_min=minute; }
\r
52 const int GetSecond() const { return m_tm.tm_sec; }
\r
53 void SetSecond(const int second) { m_tm.tm_sec=second; }
\r
54 const int GetIsDaylightTime() const { return m_tm.tm_isdst; }
\r
55 void SetIsDaylightTime(const int daylighttime) { m_tm.tm_isdst=daylighttime; }
\r
57 void Normalize(); // normalizes any date changes that were made
\r
59 std::string Format(const std::string &formatstring) const;
\r
61 DateTime operator+(const double &rhs);
\r
62 DateTime operator+(const DateTime &rhs);
\r
63 DateTime &operator+=(const double &rhs);
\r
64 DateTime &operator+=(const DateTime &rhs);
\r
65 DateTime operator-(const double &rhs);
\r
66 DateTime operator-(const DateTime &rhs);
\r
67 DateTime &operator-=(const double &rhs);
\r
68 DateTime &operator-=(const DateTime &rhs);
\r
70 const bool operator==(const DateTime &rhs) const { return *this==rhs.m_tm; }
\r
71 const bool operator==(const time_t &rhs) const { return m_timet==rhs; }
\r
72 const bool operator==(const struct tm &rhs) const;
\r
74 const bool operator<(const DateTime &rhs) const { return (*this<rhs.m_tm); }
\r
75 const bool operator<(const time_t &rhs) const { return (m_timet<rhs); }
\r
76 const bool operator<(const struct tm &rhs) const;
\r
78 const bool operator<=(const DateTime &rhs) const { return (*this<rhs.m_tm || *this==rhs.m_tm); }
\r
79 const bool operator<=(const time_t &rhs) const { return (m_timet<=rhs); }
\r
80 const bool operator<=(const struct tm &rhs) const { return (*this<rhs || *this==rhs); }
\r
82 const bool operator>(const DateTime &rhs) const { return !(*this<=rhs.m_tm); }
\r
83 const bool operator>(const time_t &rhs) const { return (m_timet>rhs); }
\r
85 const bool operator>=(const DateTime &rhs) const { return !(*this<rhs.m_tm); }
\r
86 const bool operator>=(const time_t &rhs) const { return (m_timet>=rhs); }
\r
89 const time_t TimeGM(struct tm *gmtimein);
\r
91 time_t m_timet; // don't use timet for any comparisons
\r
95 #endif // _date_time_
\r