![]() |
Qt 6.x
The Qt SDK
|
#include "qdatetime.h"
#include "qcalendar.h"
#include "qdatastream.h"
#include "qdebug.h"
#include "qlocale.h"
#include "qset.h"
#include "private/qcalendarmath_p.h"
#include "private/qdatetime_p.h"
#include "private/qgregoriancalendar_p.h"
#include "private/qlocale_tools_p.h"
#include "private/qlocaltime_p.h"
#include "private/qnumeric_p.h"
#include "private/qstringconverter_p.h"
#include "private/qstringiterator_p.h"
#include <cmath>
#include <private/qtools_p.h>
Go to the source code of this file.
Typedefs | |
typedef QDateTimePrivate::QDateTimeShortData | ShortData |
typedef QDateTimePrivate::QDateTimeData | QDateTimeData |
Enumerations | |
enum class | DaySide { Start , End } |
Definition at line 2564 of file qdatetime.cpp.
Definition at line 2563 of file qdatetime.cpp.
|
strong |
Enumerator | |
---|---|
Start | |
End |
Definition at line 831 of file qdatetime.cpp.
|
static |
Definition at line 2997 of file qdatetime.cpp.
References d, extractSpec(), getStatus(), Qt::LocalTime, Qt::OffsetFromUTC, refreshSimpleDateTime(), refreshZonedDateTime(), Qt::TimeZone, and Qt::UTC.
Referenced by QDateTime::setDate(), and QDateTime::setTime().
|
inlinestatic |
Definition at line 2584 of file qdatetime.cpp.
References qAddOverflow(), and qMulOverflow().
Referenced by millisToWithinRange(), setDateTime(), and timeToMSecs().
|
inlinestaticconstexpr |
Definition at line 2881 of file qdatetime.cpp.
References QDateTimePrivate::DaylightTime, QDateTimePrivate::SetToDaylightTime, QDateTimePrivate::SetToStandardTime, QDateTimePrivate::StandardTime, and QDateTimePrivate::UnknownDaylightTime.
Referenced by QDateTime::isDaylightTime(), massageAdjustedDateTime(), refreshZonedDateTime(), QDateTime::timeZoneAbbreviation(), and QDateTime::toMSecsSinceEpoch().
|
inlinestaticconstexpr |
Definition at line 2861 of file qdatetime.cpp.
References QDateTimePrivate::TimeSpecMask, QDateTimePrivate::TimeSpecShift, and toInt().
Referenced by checkValidDateTime(), getSpec(), massageAdjustedDateTime(), refreshSimpleDateTime(), refreshZonedDateTime(), QDateTime::setMSecsSinceEpoch(), and usesSameOffset().
|
inlinestatic |
Definition at line 62 of file qdatetime.cpp.
References QCalendar::YearMonthDay::day, QDate::fromJulianDay(), QGregorianCalendar::julianFromParts(), QCalendar::YearMonthDay::month, QGregorianCalendar::monthLength(), qMin(), and QCalendar::YearMonthDay::year.
|
inlinestatic |
Definition at line 53 of file qdatetime.cpp.
References QCalendar::dateFromParts(), QCalendar::YearMonthDay::day, QCalendar::daysInMonth(), QCalendar::hasYearZero(), QCalendar::isProleptic(), QCalendar::YearMonthDay::month, qMin(), and QCalendar::YearMonthDay::year.
Referenced by QDate::addMonths(), QDate::addMonths(), QDate::addYears(), and QDate::addYears().
|
static |
Definition at line 3112 of file qdatetime.cpp.
References d, QDate::fromJulianDay(), QTime::fromMSecsSinceStartOfDay(), getMSecs(), getStatus(), QtPrivate::DateTimeConstants::JULIAN_DAY_FOR_EPOCH, QDateTimePrivate::ValidDate, and QDateTimePrivate::ValidTime.
Referenced by QDateTime::addDays(), QDateTime::addMonths(), and QDateTime::addYears().
|
inlinestatic |
Definition at line 2890 of file qdatetime.cpp.
References d.
Referenced by QDateTime::addMSecs(), QDateTime::date(), getDateTime(), QDateTime::isDaylightTime(), QDateTime::offsetFromUtc(), refreshZonedDateTime(), QDateTime::time(), QDateTime::timeZoneAbbreviation(), and QDateTime::toMSecsSinceEpoch().
|
inlinestatic |
Definition at line 2910 of file qdatetime.cpp.
References d, extractSpec(), and getStatus().
Referenced by QDateTime::addMSecs(), QDateTime::isDaylightTime(), QDateTime::offsetFromUtc(), QDateTime::timeSpec(), QDateTime::timeZoneAbbreviation(), and QDateTime::toMSecsSinceEpoch().
|
inlinestatic |
Definition at line 2900 of file qdatetime.cpp.
References d.
Referenced by checkValidDateTime(), QDateTime::date(), getDateTime(), getSpec(), QDateTime::isDaylightTime(), QDateTime::isNull(), QDateTime::isValid(), massageAdjustedDateTime(), refreshSimpleDateTime(), refreshZonedDateTime(), reviseTimeZone(), QDateTime::setMSecsSinceEpoch(), QDateTime::time(), QDateTime::timeZoneAbbreviation(), QDateTime::toMSecsSinceEpoch(), and usesSameOffset().
Definition at line 833 of file qdatetime.cpp.
References End, QtPrivate::DateTimeConstants::JULIAN_DAY_FOR_EPOCH, QtPrivate::DateTimeConstants::MSECS_PER_DAY, and Start.
Referenced by QDate::endOfDay(), and QDate::startOfDay().
|
inlinestatic |
Definition at line 4216 of file qdatetime.cpp.
References d, date, extractDaylightStatus(), extractSpec(), getStatus(), QTimeZone::isUtcOrFixedOffset(), mergeDaylightStatus(), Q_ASSERT, refreshSimpleDateTime(), setDateTime(), QDateTimePrivate::ShortData, state, stateAtMillis(), time, timeToMSecs(), QDateTimePrivate::ValidDate, QDateTimePrivate::ValidDateTime, and QDateTimePrivate::ValidTime.
Referenced by QDateTime::addDays(), QDateTime::addMonths(), and QDateTime::addYears().
|
inlinestaticconstexpr |
Definition at line 2868 of file qdatetime.cpp.
References QDateTimePrivate::DaylightTime, QDateTimePrivate::SetToDaylightTime, QDateTimePrivate::SetToStandardTime, and QDateTimePrivate::StandardTime.
Referenced by massageAdjustedDateTime(), refreshZonedDateTime(), and QDateTime::setMSecsSinceEpoch().
|
inlinestaticconstexpr |
Definition at line 2854 of file qdatetime.cpp.
References QDateTimePrivate::TimeSpecShift.
Referenced by reviseTimeZone().
Tests whether system functions can handle a given time.
The range of milliseconds for which the time_t-based functions work depends somewhat on platform (see computeSystemMillisRange() for details). This function tests whether the UTC time millis milliseconds from the epoch is in the supported range.
To test a local time, pass an upper bound on the magnitude of time-zone correction potentially needed as slack: in this case the range is extended by this many milliseconds at each end (where applicable). The function then returns true precisely if millis is within this (possibly) widened range. This doesn't guarantee that the time_t functions can handle the time, so check their returns to be sure. Values for which the function returns false should be assumed unrepresentable.
Definition at line 2623 of file qdatetime.cpp.
References QLocalTime::computeSystemMillisRange().
Referenced by QDateTimePrivate::expressUtcAsLocal(), QDateTimePrivate::localNameAtMillis(), and QDateTimePrivate::localStateAtMillis().
|
static |
Definition at line 2717 of file qdatetime.cpp.
References daysAndMillisOverflow(), QGregorianCalendar::julianFromParts(), msecsToJulianDay(), QGregorianCalendar::partsFromJulian(), R, and systemTimeYearMatching().
Referenced by QDateTimePrivate::localNameAtMillis(), and QDateTimePrivate::localStateAtMillis().
|
inlinestatic |
Definition at line 2843 of file qdatetime.cpp.
Referenced by QDateTime::addMSecs(), setDateTime(), and QDateTime::setMSecsSinceEpoch().
Definition at line 2572 of file qdatetime.cpp.
References QDate::fromJulianDay(), and msecsToJulianDay().
Referenced by QDateTime::date().
Definition at line 2567 of file qdatetime.cpp.
References QtPrivate::DateTimeConstants::JULIAN_DAY_FOR_EPOCH.
Referenced by QDateTimePrivate::expressUtcAsLocal(), millisToWithinRange(), and msecsToDate().
Definition at line 2577 of file qdatetime.cpp.
References QTime::fromMSecsSinceStartOfDay().
Referenced by QDateTime::time().
|
related |
Definition at line 5688 of file qdatetime.cpp.
Referenced by QHash< Key, T >::qHash(), QHash< Key, T >::qHash(), and QHash< Key, T >::qHash().
|
related |
Definition at line 5703 of file qdatetime.cpp.
|
related |
Definition at line 5714 of file qdatetime.cpp.
|
static |
Definition at line 2983 of file qdatetime.cpp.
References d, extractSpec(), getStatus(), QTimeZone::isUtcOrFixedOffset(), Q_ASSERT, QDateTimePrivate::ShortData, QDateTimePrivate::ValidDate, QDateTimePrivate::ValidDateTime, and QDateTimePrivate::ValidTime.
Referenced by checkValidDateTime(), QDateTimePrivate::create(), massageAdjustedDateTime(), and reviseTimeZone().
|
static |
Definition at line 2946 of file qdatetime.cpp.
References d, extractDaylightStatus(), extractSpec(), getMSecs(), getStatus(), Qt::LocalTime, mergeDaylightStatus(), Q_ASSERT, QtPrivate::DateTimeConstants::SECS_PER_DAY, QDateTimePrivate::ShortData, state, stateAtMillis(), QTimeZone::timeSpec(), Qt::TimeZone, QDateTimePrivate::ValidDate, QDateTimePrivate::ValidDateTime, and QDateTimePrivate::ValidTime.
Referenced by checkValidDateTime(), QDateTimePrivate::create(), and reviseTimeZone().
|
static |
Definition at line 3015 of file qdatetime.cpp.
References d, QDateTimePrivate::DaylightMask, QTimeZone::fixedSecondsAheadOfUtc(), getStatus(), QTimeZone::isUtcOrFixedOffset(), Qt::LocalTime, mergeSpec(), Qt::OffsetFromUTC, Q_ASSERT, refreshSimpleDateTime(), refreshZonedDateTime(), QTimeZone::timeSpec(), Qt::TimeZone, Qt::UTC, and QDateTimePrivate::ValidDateTime.
Referenced by QDateTime::fromMSecsSinceEpoch(), QDateTime::fromSecsSinceEpoch(), and QDateTime::setTimeZone().
|
static |
Definition at line 3057 of file qdatetime.cpp.
References d, date, QDateTimePrivate::DaylightMask, daysAndMillisOverflow(), QTime::fromMSecsSinceStartOfDay(), QDate::isValid(), QTime::isValid(), QtPrivate::DateTimeConstants::JULIAN_DAY_FOR_EPOCH, QtPrivate::DateTimeConstants::MSECS_PER_DAY, msecsCanBeSmall(), QTime::msecsSinceStartOfDay(), Q_ASSERT, time, toInt(), QDate::toJulianDay(), QDateTimePrivate::ValidDate, QDateTimePrivate::ValidityMask, and QDateTimePrivate::ValidTime.
Referenced by QDateTimePrivate::create(), massageAdjustedDateTime(), QDateTime::setDate(), and QDateTime::setTime().
|
inlinestatic |
Definition at line 2838 of file qdatetime.cpp.
References Qt::LocalTime, and Qt::UTC.
Referenced by QDateTime::setMSecsSinceEpoch().
|
inlinestatic |
Definition at line 2826 of file qdatetime.cpp.
References QTimeZone::isValid(), QDateTimePrivate::localStateAtMillis(), Qt::LocalTime, QTimeZone::timeSpec(), and Qt::TimeZone.
Referenced by massageAdjustedDateTime(), and refreshZonedDateTime().
|
static |
Returns a year, in the system range, with the same day-of-week pattern
Returns the number of a year, in the range supported by system time_t functions, that starts and ends on the same days of the week as year. This implies it is a leap year precisely if year is. If year is before the epoch, a year early in the supported range is used; otherwise, one late in that range. For a leap year, this may be as much as 26 years years from the range's relevant end; for normal years at most a decade from the end.
This ensures that any DST rules based on, e.g., the last Sunday in a particular month will select the same date in the returned year as they would if applied to year. Of course, the zone's rules may be different in year than in the selected year, but it's hard to do better.
Definition at line 2646 of file qdatetime.cpp.
References QGregorianCalendar::leapTest(), Q_ASSERT, and QGregorianCalendar::yearStartWeekDay().
Referenced by QDateTimePrivate::expressUtcAsLocal(), and millisToWithinRange().
Definition at line 2591 of file qdatetime.cpp.
References date, daysAndMillisOverflow(), QtPrivate::DateTimeConstants::JULIAN_DAY_FOR_EPOCH, QtPrivate::DateTimeConstants::MSECS_PER_DAY, QTime::msecsSinceStartOfDay(), time, and QDate::toJulianDay().
Referenced by massageAdjustedDateTime().
Definition at line 853 of file qdatetime.cpp.
References QTime::addSecs(), QDateTime::date(), QTimeZone::isUtcOrFixedOffset(), QDateTime::isValid(), QTime::msecsSinceStartOfDay(), Q_ASSERT, Q_UNLIKELY, time, and QDateTime::time().
Referenced by QDate::startOfDay().
Definition at line 1002 of file qdatetime.cpp.
References QTime::addSecs(), QDateTime::date(), QTimeZone::isUtcOrFixedOffset(), QDateTime::isValid(), QTime::msecsSinceStartOfDay(), Q_ASSERT, Q_UNLIKELY, time, and QDateTime::time().
Referenced by QDate::endOfDay().
|
static |
Definition at line 284 of file qdatetime.cpp.
References QString::asprintf(), qAbs(), QtPrivate::DateTimeConstants::SECS_PER_HOUR, and Qt::TextDate.
Referenced by QDateTime::timeZoneAbbreviation().
|
inlinestatic |
Definition at line 2920 of file qdatetime.cpp.
References extractSpec(), getStatus(), Qt::LocalTime, Qt::OffsetFromUTC, Q_ASSERT, Qt::TimeZone, and Qt::UTC.