diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/tools/qdatetime.cpp | 26 | ||||
-rw-r--r-- | src/corelib/tools/qdatetime.h | 1 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp index d87a4c1b67..bfcbe1e050 100644 --- a/src/corelib/tools/qdatetime.cpp +++ b/src/corelib/tools/qdatetime.cpp @@ -2993,6 +2993,32 @@ QString QDateTime::timeZoneAbbreviation() const } /*! + \since 5.2 + + Returns if this datetime falls in Daylight Savings Time. + + If the Qt::TimeSpec is not Qt::LocalTime then will always + return false. + + \sa timeSpec() +*/ + +bool QDateTime::isDaylightTime() const +{ + switch (d->m_spec) { + case Qt::UTC: + case Qt::OffsetFromUTC: + return false; + case Qt::LocalTime: { + QDateTimePrivate::DaylightStatus status; + localMSecsToEpochMSecs(d->m_msecs, 0, 0, &status, 0); + return (status == QDateTimePrivate::DaylightTime); + } + } + return false; +} + +/*! Sets the date part of this datetime to \a date. If no time is set, it is set to midnight. diff --git a/src/corelib/tools/qdatetime.h b/src/corelib/tools/qdatetime.h index 779aae5b5b..4b97cd797d 100644 --- a/src/corelib/tools/qdatetime.h +++ b/src/corelib/tools/qdatetime.h @@ -223,6 +223,7 @@ public: Qt::TimeSpec timeSpec() const; int offsetFromUtc() const; QString timeZoneAbbreviation() const; + bool isDaylightTime() const; qint64 toMSecsSinceEpoch() const; // ### Qt 6: use quint64 instead of uint |