Класс QCalendar
Класс QCalendar описывает системы календарей. Подробнее...
| Заголовок: | #include <QCalendar> |
| qmake: | QT += core |
| С тех пор: | Qt 5.14 |
Этот класс был представлен в Qt 5.14.
Примечание: Все функции в этом классе являются реентерабельными.
Типы публичного доступа
| перечисление | System { Gregorian, Julian, Milankovic, Jalali, IslamicCivil } |
Функции публичного доступа
| 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, const QDate &dateOnly, const 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::System
Этот тип перечисления используется для указания выбора календарной системы.
| Постоянная | Значение | Описание |
|---|---|---|
QCalendar::Gregorian |
0 |
Основной календарь, используемый во всем мире. |
QCalendar::Julian |
8 |
Древнеримский календарь с недостаточным количеством високосных лет. |
QCalendar::Milankovic |
9 |
Пересмотренный юлианский календарь, используемый некоторыми православными церквями. |
QCalendar::Jalali |
10 |
Солнечный хиджрийский календарь (также называемый персидским). |
QCalendar::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, const QDate &dateOnly, const 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.
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 <= месяц <= monthsInYear(год) и 1 <= день <= daysInMonth(месяц, год). Однако календари с дополнительными днями или месяцами могут усложнить это.
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.
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-5.14/qcalendar.html