summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/tools/qdatetime.cpp5
-rw-r--r--tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp8
-rw-r--r--tests/auto/corelib/tools/qtime/tst_qtime.cpp4
3 files changed, 16 insertions, 1 deletions
diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp
index 3324408fde..fe5389514b 100644
--- a/src/corelib/tools/qdatetime.cpp
+++ b/src/corelib/tools/qdatetime.cpp
@@ -1655,7 +1655,10 @@ int QTime::secsTo(const QTime &t) const
if (!isValid() || !t.isValid())
return 0;
- return (t.ds() - ds()) / 1000;
+ // Truncate milliseconds as we do not want to consider them.
+ int ourSeconds = ds() / 1000;
+ int theirSeconds = t.ds() / 1000;
+ return theirSeconds - ourSeconds;
}
/*!
diff --git a/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp b/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp
index 70b761f705..0c018d7cce 100644
--- a/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp
+++ b/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp
@@ -895,6 +895,14 @@ void tst_QDateTime::daysTo()
void tst_QDateTime::secsTo_data()
{
addSecs_data();
+
+ QTest::newRow("disregard milliseconds #1")
+ << QDateTime(QDate(2012, 3, 7), QTime(0, 58, 0, 0)) << 60
+ << QDateTime(QDate(2012, 3, 7), QTime(0, 59, 0, 400));
+
+ QTest::newRow("disregard milliseconds #2")
+ << QDateTime(QDate(2012, 3, 7), QTime(0, 59, 0, 0)) << 60
+ << QDateTime(QDate(2012, 3, 7), QTime(1, 0, 0, 400));
}
void tst_QDateTime::secsTo()
diff --git a/tests/auto/corelib/tools/qtime/tst_qtime.cpp b/tests/auto/corelib/tools/qtime/tst_qtime.cpp
index 9a49dac785..a747b1b91d 100644
--- a/tests/auto/corelib/tools/qtime/tst_qtime.cpp
+++ b/tests/auto/corelib/tools/qtime/tst_qtime.cpp
@@ -305,6 +305,10 @@ void tst_QTime::secsTo_data()
QTest::newRow( "data4" ) << QTime(-1, -1, -1) << QTime(0, 0, 0) << 0;
QTest::newRow( "data5" ) << QTime(0, 0, 0) << QTime(-1, -1, -1) << 0;
QTest::newRow( "data6" ) << QTime(-1, -1, -1) << QTime(-1, -1, -1) << 0;
+ QTest::newRow("disregard msec (1s)") << QTime(12, 30, 1, 500) << QTime(12, 30, 2, 400) << 1;
+ QTest::newRow("disregard msec (0s)") << QTime(12, 30, 1, 500) << QTime(12, 30, 1, 900) << 0;
+ QTest::newRow("disregard msec (-1s)") << QTime(12, 30, 2, 400) << QTime(12, 30, 1, 500) << -1;
+ QTest::newRow("disregard msec (0s)") << QTime(12, 30, 1, 900) << QTime(12, 30, 1, 500) << 0;
}
void tst_QTime::secsTo()