From 85c47eed6b6bfdacfb8e6438b6ef8a1185168675 Mon Sep 17 00:00:00 2001 From: Jon Severinsson Date: Tue, 9 Oct 2012 15:15:53 +0200 Subject: [PATCH] Change QDateTime::addSecs() and QDateTime::secsTo() to use qint64. addMSecs() / msecsTo() have always used qint64, and when QDate was changed to use a 64-bit julian day, QDateTime::addDays() and QDateTime::daysTo() was changed to use qint64 in order to support the full extended range, but addSecs() and secsTo() seems to have been forgotten. Change-Id: I3acc35ee2bcc9f353650eb42f97d428f706b2db6 Reviewed-by: Thiago Macieira --- src/corelib/tools/qdatetime.cpp | 6 +++--- src/corelib/tools/qdatetime.h | 4 ++-- tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp index f9e970d..0e3da78 100644 --- a/src/corelib/tools/qdatetime.cpp +++ b/src/corelib/tools/qdatetime.cpp @@ -2756,9 +2756,9 @@ void QDateTimePrivate::addMSecs(QDate &utcDate, QTime &utcTime, qint64 msecs) \sa addMSecs(), secsTo(), addDays(), addMonths(), addYears() */ -QDateTime QDateTime::addSecs(int s) const +QDateTime QDateTime::addSecs(qint64 s) const { - return d->addMSecs(*this, qint64(s) * 1000); + return d->addMSecs(*this, s * 1000); } /*! @@ -2811,7 +2811,7 @@ qint64 QDateTime::daysTo(const QDateTime &other) const \sa addSecs(), daysTo(), QTime::secsTo() */ -int QDateTime::secsTo(const QDateTime &other) const +qint64 QDateTime::secsTo(const QDateTime &other) const { if (!isValid() || !other.isValid()) return 0; diff --git a/src/corelib/tools/qdatetime.h b/src/corelib/tools/qdatetime.h index 35c598f..ed7d8ad 100644 --- a/src/corelib/tools/qdatetime.h +++ b/src/corelib/tools/qdatetime.h @@ -232,13 +232,13 @@ public: QDateTime addDays(qint64 days) const; QDateTime addMonths(int months) const; QDateTime addYears(int years) const; - QDateTime addSecs(int secs) const; + QDateTime addSecs(qint64 secs) const; QDateTime addMSecs(qint64 msecs) const; QDateTime toTimeSpec(Qt::TimeSpec spec) const; inline QDateTime toLocalTime() const { return toTimeSpec(Qt::LocalTime); } inline QDateTime toUTC() const { return toTimeSpec(Qt::UTC); } qint64 daysTo(const QDateTime &) const; - int secsTo(const QDateTime &) const; + qint64 secsTo(const QDateTime &) const; qint64 msecsTo(const QDateTime &) const; bool operator==(const QDateTime &other) const; diff --git a/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp b/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp index b6c9c15..ac544ca 100644 --- a/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp +++ b/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp @@ -916,8 +916,8 @@ void tst_QDateTime::secsTo() #ifdef Q_OS_IRIX QEXPECT_FAIL("cet4", "IRIX databases say 1970 had DST", Abort); #endif - QCOMPARE(dt.secsTo(result), nsecs); - QCOMPARE(result.secsTo(dt), -nsecs); + QCOMPARE(dt.secsTo(result), (qint64)nsecs); + QCOMPARE(result.secsTo(dt), (qint64)-nsecs); QVERIFY((dt == result) == (0 == nsecs)); QVERIFY((dt != result) == (0 != nsecs)); QVERIFY((dt < result) == (0 < nsecs)); -- 2.7.4