10#include <QtCore/qglobal.h>
11#include <QtCore/qlocale.h>
12#include <QtCore/qstring.h>
13#include <QtCore/qstringview.h>
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
46
50class QCalendarBackend;
58 enum :
int { Unspecified = (std::numeric_limits<
int>::min)() };
61 YearMonthDay() =
default;
62 YearMonthDay(
int y,
int m = 1,
int d = 1) : year(y), month(m), day(d) {}
65 {
return month != Unspecified && day != Unspecified; }
68 int year = Unspecified;
69 int month = Unspecified;
70 int day = Unspecified;
76#ifndef QT_BOOTSTRAPPED
82#if QT_CONFIG(jalalicalendar)
85#if QT_CONFIG(islamiccivilcalendar)
101 friend class QCalendarBackend;
102 constexpr bool isInEnum()
const {
return id <= size_t(QCalendar::System::Last); }
103 constexpr explicit SystemId(QCalendar::System e) : id(size_t(e)) { }
104 constexpr explicit SystemId(size_t i) : id(i) { }
107 constexpr SystemId() : id(~size_t(0)) {}
108 constexpr size_t index()
const noexcept {
return id; }
109 constexpr bool isValid()
const noexcept {
return ~id; }
112 explicit QCalendar();
113 explicit QCalendar(System system);
114#if QT_CORE_REMOVED_SINCE(6
, 4
)
115 explicit QCalendar(QLatin1StringView name);
116 explicit QCalendar(QStringView name);
118 explicit QCalendar(QAnyStringView name);
119 explicit QCalendar(SystemId id);
122 bool isValid()
const {
return d_ptr !=
nullptr; }
125 int daysInMonth(
int month,
int year = Unspecified)
const;
126 int daysInYear(
int year)
const;
127 int monthsInYear(
int year)
const;
128 bool isDateValid(
int year,
int month,
int day)
const;
131 bool isLeapYear(
int year)
const;
134 bool isGregorian()
const;
135 bool isLunar()
const;
136 bool isLuniSolar()
const;
137 bool isSolar()
const;
138 bool isProleptic()
const;
139 bool hasYearZero()
const;
140 int maximumDaysInMonth()
const;
141 int minimumDaysInMonth()
const;
142 int maximumMonthsInYear()
const;
143 QString name()
const;
146 QDate dateFromParts(
int year,
int month,
int day)
const;
147 QDate dateFromParts(
const YearMonthDay &parts)
const;
148 QDate matchCenturyToWeekday(
const YearMonthDay &parts,
int dow)
const;
149 YearMonthDay partsFromDate(QDate date)
const;
150 int dayOfWeek(QDate date)
const;
153 QString monthName(
const QLocale &locale,
int month,
int year = Unspecified,
154 QLocale::FormatType format=QLocale::LongFormat)
const;
155 QString standaloneMonthName(
const QLocale &locale,
int month,
int year = Unspecified,
156 QLocale::FormatType format = QLocale::LongFormat)
const;
157 QString weekDayName(
const QLocale &locale,
int day,
158 QLocale::FormatType format = QLocale::LongFormat)
const;
159 QString standaloneWeekDayName(
const QLocale &locale,
int day,
160 QLocale::FormatType format=QLocale::LongFormat)
const;
163 QString dateTimeToString(QStringView format,
const QDateTime &datetime,
164 QDate dateOnly, QTime timeOnly,
165 const QLocale &locale)
const;
168 static QStringList availableCalendars();
174 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)
#define QStringLiteral(str)
char32_t ucsFirst(const char16_t *table) const
const GroupSizes grouping
QString positiveSign() const
QString groupSeparator() const
QSimpleParsedNumber< qint64 > stringToLongLong(QStringView str, int base, QLocale::NumberOptions options) const
Q_AUTOTEST_EXPORT char32_t zeroUcs() 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
QString exponentSeparator() const
QString negativeSign() const
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
QLocaleId withLikelySubtagsRemoved() const noexcept
bool operator==(QLocaleId other) const noexcept