diff --git a/src/ISO8601.cpp b/src/ISO8601.cpp index 4148fca26..ef7a62026 100644 --- a/src/ISO8601.cpp +++ b/src/ISO8601.cpp @@ -126,6 +126,21 @@ ISO8601d::ISO8601d (const time_t t) _date = t; } +//////////////////////////////////////////////////////////////////////////////// +ISO8601d::ISO8601d (const int m, const int d, const int y) +{ + clear (); + + // Error if not valid. + struct tm t = {0}; + t.tm_isdst = -1; // Requests that mktime determine summer time effect. + t.tm_mday = d; + t.tm_mon = m - 1; + t.tm_year = y - 1900; + + _date = mktime (&t); +} + //////////////////////////////////////////////////////////////////////////////// ISO8601d::~ISO8601d () { diff --git a/src/ISO8601.h b/src/ISO8601.h index 6e7dd7cca..a102534f1 100644 --- a/src/ISO8601.h +++ b/src/ISO8601.h @@ -39,6 +39,7 @@ public: ISO8601d (); ISO8601d (time_t); + ISO8601d (const int, const int, const int); ~ISO8601d (); ISO8601d (const ISO8601d&); // Unimplemented ISO8601d& operator= (const ISO8601d&); // Unimplemented