diff --git a/src/ISO8601.cpp b/src/ISO8601.cpp index 6fa9df6c1..0295a96b6 100644 --- a/src/ISO8601.cpp +++ b/src/ISO8601.cpp @@ -1201,6 +1201,20 @@ time_t ISO8601d::operator- (const ISO8601d& rhs) return _date - rhs._date; } +//////////////////////////////////////////////////////////////////////////////// +// Prefix decrement by one day. +void ISO8601d::operator-- () +{ + ISO8601d yesterday = startOfDay () - 1; + yesterday = ISO8601d (yesterday.month (), + yesterday.day (), + yesterday.year (), + hour (), + minute (), + second ()); + _date = yesterday._date; +} + //////////////////////////////////////////////////////////////////////////////// void ISO8601p::clear () { diff --git a/src/ISO8601.h b/src/ISO8601.h index d4cd49768..85833640d 100644 --- a/src/ISO8601.h +++ b/src/ISO8601.h @@ -85,6 +85,7 @@ public: ISO8601d& operator+= (const int); ISO8601d& operator-= (const int); time_t operator- (const ISO8601d&); + void operator-- (); // Prefix private: void clear ();