Класс QCalendar
Класс QCalendar описывает системы календарей. Подробнее...
| Заголовок: | #include <QCalendar> |
| qmake: | QT += core |
| С момента: | Qt 5.14 |
Этот класс был представлен в Qt 5.14.
Примечание: Все функции в этом классе являются реентерабельными.
Типы публичного интерфейса
| Перечисление | Система { Григорианский, Юлианский, Миланкович, Джалали, ИсламскийГражданский } |
Публичные функции
| QCalendar(QStringView name) | |
| QCalendar(QLatin1String name) | |
| QCalendar(QCalendar::Система 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::Система в конструктор. Все поддерживаемые календари могут быть созданы по имени после их создания. (Таким образом, плагины инициализируют свой бэкенд календаря для его регистрации). Встроенные бэкэнды, доступные через QCalendar::Система, также всегда доступны по имени.
Значение 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)
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, 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.
Обработка 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-5.15/qcalendar.html