Diffstat (limited to 'libopie2/opiepim/private/opimsortvector.h') (more/less context) (show whitespace changes)
-rw-r--r-- | libopie2/opiepim/private/opimsortvector.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libopie2/opiepim/private/opimsortvector.h b/libopie2/opiepim/private/opimsortvector.h index 11a40ac..9684ca1 100644 --- a/libopie2/opiepim/private/opimsortvector.h +++ b/libopie2/opiepim/private/opimsortvector.h | |||
@@ -58,2 +58,4 @@ protected: | |||
58 | const QDateTime& right )const; | 58 | const QDateTime& right )const; |
59 | int testDaysUntilNextDate( const QDate& left, | ||
60 | const QDate& right )const; | ||
59 | protected: | 61 | protected: |
@@ -168,2 +170,24 @@ inline int OPimSortVector<T>::testDateTime( const QDateTime& left, | |||
168 | 170 | ||
171 | template<class T> | ||
172 | inline int OPimSortVector<T>::testDaysUntilNextDate( const QDate& left, | ||
173 | const QDate& right )const { | ||
174 | int ret = 0; | ||
175 | if ( !left .isValid() ) ret++; | ||
176 | if ( !right.isValid() ) ret--; | ||
177 | |||
178 | if ( left.isValid() && right.isValid() ){ | ||
179 | int currentYear = QDate::currentDate().year(); | ||
180 | QDate nextLeft( currentYear, left.month(), left.day() ); | ||
181 | if ( QDate::currentDate().daysTo(nextLeft) < 0 ) | ||
182 | nextLeft.setYMD( currentYear+1, left.month(), left.day() ); | ||
183 | QDate nextRight( currentYear, right.month(), right.day() ); | ||
184 | if ( QDate::currentDate().daysTo(nextRight) < 0 ) | ||
185 | nextRight.setYMD( currentYear+1, right.month(), right.day() ); | ||
186 | |||
187 | ret += QDate::currentDate().daysTo(nextLeft) < QDate::currentDate().daysTo(nextRight) ? -1 : 1; | ||
188 | } | ||
189 | |||
190 | return ret; | ||
191 | } | ||
192 | |||
169 | } | 193 | } |