Класс QCalendar
Класс QCalendar описывает системы календарей. Подробнее...
| Заголовок: | #include <QCalendar> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| С момента: | Qt 5.14 |
Примечание: Все функции в этом классе являются повторно входящими.
Типы общедоступного доступа
| перечисление | Система { Григорианский, Юлианский, Миланковича, Джаляли, ИсламскийГражданский } |
Общедоступные функции
| QCalendar(QStringView name) | |
| QCalendar(QLatin1String name) | |
| QCalendar(QCalendar::System system) | |
| QCalendar() | |
| QDate | dateFromParts(int year, int month, int day) const |
| QDate | dateFromParts(const QCalendar::YearMonthDay &parts) const |
| QString | dateTimeToString(QStringView format, const QDateTime &datetime, QDate dateOnly, QTime timeOnly, const QLocale &locale) const |
| int | dayOfWeek(QDate date) const |
| int | daysInMonth(int month, int year = Unspecified) const |
| int | daysInYear(int year) const |
| bool | hasYearZero() const |
| bool | isDateValid(int year, int month, int day) const |
| bool | isGregorian() const |
| bool | isLeapYear(int year) const |
| bool | isLunar() const |
| bool | isLuniSolar() const |
| bool | isProleptic() const |
| bool | isSolar() const |
| bool | isValid() const |
| int | maximumDaysInMonth() const |
| int | maximumMonthsInYear() const |
| int | minimumDaysInMonth() const |
| QString | monthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const |
| int | monthsInYear(int year) const |
| QString | name() const |
| QCalendar::YearMonthDay | partsFromDate(QDate date) const |
| QString | standaloneMonthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const |
| QString | standaloneWeekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const |
| QString | weekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const |
Статические члены открытого доступа
| QStringList | availableCalendars() |
Подробное описание
Объект QCalendar сопоставляет год, месяц и номер дня с определенным днем (в конечном итоге идентифицируемым по его дню Юлиуса), используя правила конкретной системы.
По умолчанию QCalendar() — это пролептический григорианский календарь, в котором нет нулевого года. Другие календари могут поддерживаться путем включения соответствующих функций или загрузки плагинов. Календари, поддерживаемые в качестве функций, могут быть созданы путем передачи перечисления QCalendar::System в конструктор. Все поддерживаемые календари могут быть созданы по имени, после того, как они были созданы. (Таким образом, плагины инициализируют свой календарный бэкэнд для его регистрации.) Встроенные бэкэнды, доступные через QCalendar::System, также всегда доступны по имени.
Значение QCalendar неизменяемо.
Документация по типу члена
перечисление QCalendar::Система
Это перечисление используется для указания выбора системы календаря.
| Константа | Значение | Описание |
|---|---|---|
QCalendar::System::Gregorian |
0 |
По умолчанию используется во всем мире. |
QCalendar::System::Julian |
8 |
Древний римский календарь с недостаточным количеством високосных лет. |
QCalendar::System::Milankovic |
9 |
Пересмотренный юлианский календарь, используемый некоторыми православными церквями. |
QCalendar::System::Jalali |
10 |
Солнечно-лунный календарь (также называемый персидским). |
QCalendar::System::IslamicCivil |
11 |
Таблица исламского гражданского календаря. |
См. также QCalendar.
Документация по документации функции члена
QDate QCalendar::dateFromParts(const QCalendar::YearMonthDay &parts) const
QDate QCalendar::dateFromParts(int year, int month, int day) const
Преобразует год, месяц и день в QDate.
year, month, и day могут быть переданы как отдельные числа или упакованы вместе как члены parts. Возвращает QDate с заданным годом, месяцем и днем месяца в этом календаре, если такой есть. В противном случае, включая случай, когда любое из значений равно QCalendar::Unspecified, возвращает QDate, для которого isNull() равно true.
См. также isDateValid() и partsFromDate().
QCalendar::QCalendar()
QCalendar::QCalendar(QCalendar::System system)
QCalendar::QCalendar(QLatin1String name)
QCalendar::QCalendar(QStringView name)
Создаёт объект календаря.
END_OF_DOCUMENT_MARKERВыбор календаря может быть указан как система, используя перечисление QCalendar::System, или по имени, используя строку (либо Unicode, либо Latin 1). Создание по имени может зависеть от того, был ли экземпляр данного календаря создан другими способами предварительно. Без аргументов конструктор по умолчанию возвращает григорианский календарь.
См. также QCalendar, System и isValid().
[static] QStringList QCalendar::availableCalendars()
Возвращает список имён доступных систем календарей.
Эти имена могут быть предоставлены плагинами или другим кодом, связанным с приложением, помимо тех, которые предоставляются Qt, некоторые из которых управляются функциями.
QString QCalendar::dateTimeToString(QStringView format, const QDateTime &datetime, QDate dateOnly, QTime timeOnly, const QLocale &locale) const
Возвращает строку, представляющую заданную дату, время или дату и время.
Если datetime допустима, она представляется, и спецификаторы формата для полей даты и времени распознаются; в противном случае, если dateOnly допустима, она представляется, и распознаются только спецификаторы формата для полей даты; наконец, если timeOnly допустима, она представляется, и распознаются только спецификаторы формата для полей времени. Если ни одно из этих значений не допустимо, возвращается пустая строка.
См. QDate::toString и QTime::toString() для поддерживаемых спецификаторов полей. Символы в format, которые распознаются как спецификаторы полей, заменяются текстом, представляющим соответствующие данные из даты и/или времени, которые представляются. Тексты для их представления могут зависеть от указанного locale. Другие символы в format копируются дословно в возвращаемую строку.
См. также monthName(), weekDayName(), QDate::toString() и QTime::toString().
int QCalendar::dayOfWeek(QDate date) const
Возвращает номер дня недели для заданной date.
Возвращает ноль, если календарь не может представить указанную дату. Возвращает 1 для понедельника до 7 для воскресенья. Календари с вставленными днями могут использовать другие числа для их представления.
См. также partsFromDate() и Qt::DayOfWeek.
int QCalendar::daysInMonth(int month, int year = Unspecified) const
Возвращает количество дней в данном month данного year.
Месяцы нумеруются последовательно, начиная с 1 для первого месяца каждого года. Если year равно Unspecified (по умолчанию, если не указано), возвращается длина месяца в обычном году.
См. также maximumDaysInMonth() и minimumDaysInMonth().
int QCalendar::daysInYear(int year) const
Возвращает количество дней в данном year.
Обработка Unspecified в качестве year не определена.
bool QCalendar::hasYearZero() const
Возвращает true если у этого календаря есть год ноль.
Календарь может представлять годы, начиная с первого года, но не предоставлять способа описания лет до первого; такой календарь не имеет года ноль и не пролептический.
Календарь, который представляет годы до своего первого, может нумеровать эти годы, просто следуя обычной нумерации целых чисел, так что год перед первым - это год ноль, с отрицательными годами, предшествующими этому; такой календарь пролептический и имеет год ноль. Календарь может также иметь год ноль (например, год какого-то важного события, с последующими годами, являющимися первым годом после этого события, вторым годом после и так далее), не описывая годы до своего года ноля. Такой календарь имел бы год ноль без того, чтобы быть пролептическим.
Однако некоторые календари представляют годы до своего первого с помощью альтернативной нумерации; например, пролептический григорианский календарь имеет первый год 1 н. э., а год перед ним - 1 до н. э., предшествующий 2 до н. э. и так далее. В этом случае мы используем отрицательные значения года для этой альтернативной нумерации, где год -1 - это год до года 1, год -2 - год до года -1 и так далее. Такой календарь пролептический, но не имеет года ноль.
См. также isProleptic().
bool QCalendar::isDateValid(int year, int month, int day) const
Возвращает true точно тогда, когда заданный year, month и day определяют допустимую дату в этом календаре.
Обычно это означает 1 <= month <= monthsInYear(year) и 1 <= day <= daysInMonth(month, year). Однако календари с вставленными днями или месяцами могут усложнить это.
bool QCalendar::isGregorian() const
Возвращает true если этот объект календаря является объектом григорианского календаря, используемым в качестве календаря по умолчанию другими API Qt, например, в QDate.
bool QCalendar::isLeapYear(int year) const
Возвращает true если данный year является високосным.
Поскольку год не представляет собой целое число дней, некоторые годы длиннее других. Разница может составлять целый месяц или всего один день; детали различаются между календарями.
См. также isDateValid().
bool QCalendar::isLunar() const
Возвращает true если этот календарь является лунным.
Лунный календарь основан в основном на фазах Луны.
bool QCalendar::isLuniSolar() const
Возвращает true если этот календарь лунно-солнечный.
Лунно-солнечный календарь выражает фазы Луны, но адаптируется к тому, чтобы также отслеживать изменяющееся положение Солнца на небе по отношению к неподвижным звездам.
bool QCalendar::isProleptic() const
Возвращает true если этот календарь пролептический.
Пролептический календарь может описывать годы, произвольно предшествующие своему первому. Они представлены отрицательными значениями года и, возможно, годом ноль.
См. также hasYearZero().
bool QCalendar::isSolar() const
Возвращает true если этот календарь солнечный.
Солнечный календарь основан в основном на изменяющемся положении Солнца на небе по отношению к неподвижным звездам.
bool QCalendar::isValid() const
Возвращает true, если это допустимый объект календаря.
Создание календаря с недопустимым именем календаря может привести к созданию недопустимого объекта. Используйте этот метод для проверки после создания календаря по имени.
int QCalendar::maximumDaysInMonth() const
Возвращает количество дней в самом длинном месяце в календаре в любом году.
См. также daysInMonth() и minimumDaysInMonth().
int QCalendar::maximumMonthsInYear() const
Возвращает наибольшее количество месяцев, которое может содержать любой год.
См. также monthName(), standaloneMonthName() и monthsInYear().
int QCalendar::minimumDaysInMonth() const
Возвращает количество дней в самом коротком месяце в календаре в любом году.
См. также daysInMonth() и maximumDaysInMonth().
QString QCalendar::monthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const
Возвращает соответствующее локализованное имя месяца.
Месяц обозначается числом, где month = 1 означает первый месяц года, а последующие месяцы нумеруются соответственно. Возвращает пустую строку, если номер month не распознан.
year может быть Unspecified, в этом случае используется сопоставление чисел с именами для месяцев типичного года. Некоторые календари имеют високосные месяцы, которые не всегда находятся в конце года; их сопоставление номеров месяцев с именами может зависеть от расположения високосного месяца. Таким образом, год обычно должен быть указан, если он известен.
Имя возвращается в форме, которая обычно используется в полной дате в указанном locale; format определяет, насколько полно оно будет выражено (то есть, до какой степени оно будет сокращено).
См. также standaloneMonthName(), maximumMonthsInYear() и dateTimeToString().
int QCalendar::monthsInYear(int year) const
Возвращает количество месяцев в данном year.
Если year равно Unspecified, возвращает максимальное количество месяцев в году.
См. также maximumMonthsInYear().
QString QCalendar::name() const
Основное имя этого календаря.
QCalendar::YearMonthDay QCalendar::partsFromDate(QDate date) const
Преобразует QDate в год, месяц и день месяца.
Значение isValid() возвращаемой структуры будет ложным, если календарь не может представить заданную дату date. В противном случае члены year, month и day структуры содержат соответствующие части представления.
См. также dateFromParts(), isProleptic() и hasYearZero().
QString QCalendar::standaloneMonthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const
Возвращает локально подходящее название месяца.
Месяц указывается числом, при этом month = 1 означает первый месяц года, последующие месяцы нумеруются соответственно. Возвращает пустую строку, если номер month не распознан.
Значение year может быть Unspecified, в этом случае используется соответствие номеров месяцам в типичном году. Некоторые календари имеют високосные месяцы, которые не всегда находятся в конце года; соответствие номеров месяцев именам может тогда зависеть от расположения високосного месяца. Поэтому значение года следует обычно указывать, если оно известно.
Имя возвращается в форме, используемой изолированно в указанном locale; значение format определяет, насколько полно оно будет выражено (т.е. насколько оно сокращено).
См. также monthName(), maximumMonthsInYear() и dateTimeToString().
QString QCalendar::standaloneWeekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const
Возвращает локально подходящее название дня недели.
Дни недели нумеруются от 1 (понедельник) до 7 (воскресенье). Некоторые календари могут поддерживать более высокие числа для других дней (например, междоурочные дни, которые не являются частью недели). Возвращает пустую строку, если номер day не распознан.
Имя возвращается в форме, используемой изолированно (например, в качестве заголовка колонки в табличном представлении календаря месяца с последующими неделями как строками) в указанном locale; значение format определяет, насколько полно оно будет выражено (т.е. насколько оно сокращено).
См. также weekDayName() и dayOfWeek().
QString QCalendar::weekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const
Возвращает локально подходящее название дня недели.
Дни недели нумеруются от 1 (понедельник) до 7 (воскресенье). Некоторые календари могут поддерживать более высокие числа для других дней (например, междоурочные дни, которые не являются частью недели). Возвращает пустую строку, если номер day не распознан.
Имя возвращается в форме, обычно используемой в полной дате, в указанном locale; значение format определяет, насколько полно оно будет выражено (т.е. насколько оно сокращено).
См. также standaloneWeekDayName() и dayOfWeek().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qcalendar.html