Класс QCalendar
Класс QCalendar описывает системы календарей. Подробнее...
| Заголовок: | #include <QCalendar> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| С момента: | Qt 5.14 |
Примечание: Все функции в этом классе являются многопоточными.
Типы public
| Перечисление class | Система { Григорианская, Юлианская, Миланковича, Джалали, ИсламскийГражданский } |
Функции public
| 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 |
Статические public члены
| QStringList | availableCalendars() |
Подробное описание
Объект QCalendar сопоставляет год, месяц и день с конкретным днем (в конечном счете, определяемым его днём Юлиана), используя правила конкретной системы.
По умолчанию QCalendar() представляет собой пролептический григорианский календарь, у которого нет нулевого года. Другие календари могут поддерживаться путем включения соответствующих функций или загрузки плагинов. Поддерживаемые календари могут быть созданы, передав перечисление QCalendar::System в конструктор. Все поддерживаемые календари могут быть созданы по имени, после их создания. (Таким образом, плагины инициализируют свой бэкенд календаря, чтобы зарегистрировать его.) Встроенные бэкенды, доступные через QCalendar::System, также всегда доступны по имени.
Значение QCalendar неизменяемо.
Документация типов членов
enum class QCalendar::System
Этот перечисляемый тип используется для указания выбора системы календаря.
| Постоянная | Значение | Описание |
|---|---|---|
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)
Создаёт объект календаря.
Выбор календаря может быть указан как система, используя перечисление 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() равным false, если календарь не может представить заданную дату 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.1/qcalendar.html