9#include <QtCore/qglobal.h>
10#include <QtCore/qlocale.h>
11#include <QtCore/qstring.h>
12#include <QtCore/qstringview.h>
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
49class QCalendarBackend;
57 enum :
int { Unspecified = (std::numeric_limits<
int>::min)() };
60 YearMonthDay() =
default;
61 YearMonthDay(
int y,
int m = 1,
int d = 1) : year(y), month(m), day(d) {}
64 {
return month != Unspecified && day != Unspecified; }
67 int year = Unspecified;
68 int month = Unspecified;
69 int day = Unspecified;
75#ifndef QT_BOOTSTRAPPED
81#if QT_CONFIG(jalalicalendar)
84#if QT_CONFIG(islamiccivilcalendar)
100 friend class QCalendarBackend;
101 constexpr bool isInEnum()
const {
return id <= size_t(QCalendar::System::Last); }
102 constexpr explicit SystemId(QCalendar::System e) : id(size_t(e)) { }
103 constexpr explicit SystemId(size_t i) : id(i) { }
106 constexpr SystemId() : id(~size_t(0)) {}
107 constexpr size_t index()
const noexcept {
return id; }
108 constexpr bool isValid()
const noexcept {
return ~id; }
111 explicit QCalendar();
112 explicit QCalendar(System system);
113#if QT_CORE_REMOVED_SINCE(6
, 4
)
114 explicit QCalendar(QLatin1StringView name);
115 explicit QCalendar(QStringView name);
117 explicit QCalendar(QAnyStringView name);
118 explicit QCalendar(SystemId id);
121 bool isValid()
const {
return d_ptr !=
nullptr; }
124 int daysInMonth(
int month,
int year = Unspecified)
const;
125 int daysInYear(
int year)
const;
126 int monthsInYear(
int year)
const;
127 bool isDateValid(
int year,
int month,
int day)
const;
130 bool isLeapYear(
int year)
const;
133 bool isGregorian()
const;
134 bool isLunar()
const;
135 bool isLuniSolar()
const;
136 bool isSolar()
const;
137 bool isProleptic()
const;
138 bool hasYearZero()
const;
139 int maximumDaysInMonth()
const;
140 int minimumDaysInMonth()
const;
141 int maximumMonthsInYear()
const;
142 QString name()
const;
145 QDate dateFromParts(
int year,
int month,
int day)
const;
146 QDate dateFromParts(
const YearMonthDay &parts)
const;
147 QDate matchCenturyToWeekday(
const YearMonthDay &parts,
int dow)
const;
148 YearMonthDay partsFromDate(QDate date)
const;
149 int dayOfWeek(QDate date)
const;
152 QString monthName(
const QLocale &locale,
int month,
int year = Unspecified,
153 QLocale::FormatType format=QLocale::LongFormat)
const;
154 QString standaloneMonthName(
const QLocale &locale,
int month,
int year = Unspecified,
155 QLocale::FormatType format = QLocale::LongFormat)
const;
156 QString weekDayName(
const QLocale &locale,
int day,
157 QLocale::FormatType format = QLocale::LongFormat)
const;
158 QString standaloneWeekDayName(
const QLocale &locale,
int day,
159 QLocale::FormatType format=QLocale::LongFormat)
const;
162 QString dateTimeToString(QStringView format,
const QDateTime &datetime,
163 QDate dateOnly, QTime timeOnly,
164 const QLocale &locale)
const;
167 static QStringList availableCalendars();
173 const QCalendarBackend *d_ptr;
The QCalendar class describes calendar systems.
const QLocaleData *const m_data
QLocale::MeasurementSystem measurementSystem() const
QByteArray bcp47Name(char separator='-') const
char32_t next(char32_t invalidAs=QChar::ReplacementCharacter)
Combined button and popup list for selecting options.
Q_GLOBAL_STATIC(DefaultRoleNames, qDefaultRoleNames, { { Qt::DisplayRole, "display" }, { Qt::DecorationRole, "decoration" }, { Qt::EditRole, "edit" }, { Qt::ToolTipRole, "toolTip" }, { Qt::StatusTipRole, "statusTip" }, { Qt::WhatsThisRole, "whatsThis" }, }) const QHash< int
static unsigned calculateFlags(int fieldWidth, char32_t fillChar, const QLocale &locale)
static QString calculateFiller(qsizetype padding, char32_t fillChar, qsizetype fieldWidth, const QLocaleData *localeData)
QDebug operator<<(QDebug dbg, const QLocale &l)
static QLocalePrivate * findLocalePrivate(QLocale::Language language, QLocale::Script script, QLocale::Territory territory)
static std::optional< QString > systemLocaleString(const QLocaleData *that, QSystemLocale::QueryType type)
static const QSystemLocale * systemLocale()
static bool checkParsed(QByteArrayView num, qsizetype used)
static QString rawWeekDayName(const QLocaleData *data, const int day, QLocale::FormatType type)
QDataStream & operator>>(QDataStream &ds, QLocale &l)
#define CheckCandidate(id)
static Q_DECL_COLD_FUNCTION void badSeparatorWarning(const char *method, char sep)
static QString rawStandaloneWeekDayName(const QLocaleData *data, const int day, QLocale::FormatType type)
static constexpr QLocale::NumberOptions defaultNumberOptions(QLocale::Language forLanguage)
static QStringView findTag(QStringView name) noexcept
static bool validTag(QStringView tag)
static qsizetype scriptIndex(QStringView code, Qt::CaseSensitivity cs) noexcept
static const QCalendarLocale & getMonthDataFor(const QLocalePrivate *loc, const QCalendarLocale *table)
static T toIntegral_helper(const QLocalePrivate *d, QStringView str, bool *ok)
static bool timeFormatContainsAP(QStringView format)
size_t qHash(const QLocale &key, size_t seed) noexcept
bool comparesEqual(const QLocale &loc, QLocale::Language lang)
static qsizetype findLocaleIndexById(QLocaleId localeId) noexcept
static constexpr qsizetype locale_data_size
static void updateSystemPrivate()
static QString rawMonthName(const QCalendarLocale &localeData, const char16_t *monthsData, int month, QLocale::FormatType type)
static qsizetype stringWidth(QStringView text)
static QLocalePrivate * c_private() noexcept
static const QLocaleData * defaultData()
static QString rawStandaloneMonthName(const QCalendarLocale &localeData, const char16_t *monthsData, int month, QLocale::FormatType type)
static QString localeString(const QLocaleData *that, QSystemLocale::QueryType type, QLocaleData::DataRange range)
static const QLocaleData * systemData(qsizetype *sysIndex=nullptr)
static QString offsetFromAbbreviation(QString &&text)
static qsizetype defaultIndex()
static constexpr char16_t single_character_data[]
static constexpr char16_t days_data[]
static constexpr QLocaleData locale_data[]
static constexpr QLocaleId likely_subtags[]
static constexpr unsigned char territory_code_list[]
static constexpr unsigned char script_code_list[]
bool qt_splitLocaleName(QStringView name, QStringView *lang=nullptr, QStringView *script=nullptr, QStringView *cntry=nullptr) noexcept
qsizetype qt_repeatCount(QStringView s) noexcept
QString qt_readEscapedFormatString(QStringView format, qsizetype *idx)
char32_t ucsFirst(const char16_t *table) const
QString positiveSign() const
QString groupSeparator() const
QSimpleParsedNumber< qint64 > stringToLongLong(QStringView str, int base, QLocale::NumberOptions options) const
QString zeroDigit() const
bool numberToCLocale(QStringView s, QLocale::NumberOptions number_options, NumberMode mode, CharBuff *result) const
QString decimalPoint() const
QString doubleToString(double d, int precision=-1, DoubleForm form=DFSignificantDigits, int width=-1, unsigned flags=NoFlags) const
QString listSeparator() const
QString percentSign() const
double stringToDouble(QStringView str, bool *ok, QLocale::NumberOptions options) const
QString longLongToString(qint64 l, int precision=-1, int base=10, int width=-1, unsigned flags=NoFlags) const
NumericData numericData(NumberMode mode) const
QString exponentSeparator() const
QString negativeSign() const
static const QLocaleData * c() noexcept
QSimpleParsedNumber< quint64 > stringToUnsLongLong(QStringView str, int base, QLocale::NumberOptions options) const
QString unsLongLongToString(quint64 l, int precision=-1, int base=10, int width=-1, unsigned flags=NoFlags) const
QLocaleId withLikelySubtagsAdded() const noexcept
Fill in blank fields of a locale ID.
QLocaleId withLikelySubtagsRemoved() const noexcept
bool operator==(QLocaleId other) const noexcept
bool matchesAll() const noexcept
QByteArray name(char separator='-') const