QCalendar Class
Die Klasse QCalendar beschreibt Kalendersysteme. Mehr...
Kopfzeile: | #include <QCalendar> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Typen
(since 6.2) class | SystemId |
enum class | System { Gregorian, Julian, Milankovic, Jalali, IslamicCivil } |
Öffentliche Funktionen
QCalendar() | |
QCalendar(QAnyStringView name) | |
QCalendar(QCalendar::System system) | |
(since 6.2) | QCalendar(QCalendar::SystemId id) |
QDate | dateFromParts(const QCalendar::YearMonthDay &parts) const |
QDate | dateFromParts(int year, int month, int day) 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 |
(since 6.7) QDate | matchCenturyToWeekday(const QCalendar::YearMonthDay &parts, int dow) 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 |
Statische öffentliche Mitglieder
QStringList | availableCalendars() |
Detaillierte Beschreibung
Ein QCalendar-Objekt ordnet ein Jahr, einen Monat und eine Tagesnummer einem bestimmten Tag zu (der letztendlich durch seine julianische Tagesnummer identifiziert wird), wobei die Regeln eines bestimmten Systems verwendet werden.
Der Standard QCalendar() ist ein proleptischer Gregorianischer Kalender, der kein Jahr Null hat. Andere Kalender können durch das Aktivieren geeigneter Funktionen oder das Laden von Plugins unterstützt werden. Kalender, die als Features unterstützt werden, können konstruiert werden, indem die QCalendar::System Aufzählung an den Konstruktor übergeben wird. Alle unterstützten Kalender können durch ihren Namen konstruiert werden, sobald sie konstruiert wurden. (Daher instanziieren Plugins ihr Kalender-Backend, um es zu registrieren.) Eingebaute Backends, die über QCalendar::System zugänglich sind, sind auch immer namentlich verfügbar. Kalender, die benutzerdefinierte Backends verwenden, können auch mit einer eindeutigen ID erstellt werden, die dem Backend bei der Erstellung zugewiesen wird.
Ein QCalendar-Wert ist unveränderlich.
Siehe auch QDate und QDateTime.
Dokumentation der Membertypen
enum class QCalendar::System
Dieser Aufzählungstyp wird verwendet, um eine Auswahl des Kalendersystems anzugeben.
Konstante | Wert | Beschreibung |
---|---|---|
QCalendar::System::Gregorian | 0 | Der Standardkalender, der international verwendet wird. |
QCalendar::System::Julian | 8 | Ein alter römischer Kalender. |
QCalendar::System::Milankovic | 9 | Ein überarbeiteter julianischer Kalender, der von einigen orthodoxen Kirchen verwendet wird. |
QCalendar::System::Jalali | 10 | Der solare Hijri-Kalender (auch Persischer Kalender genannt). |
QCalendar::System::IslamicCivil | 11 | Der (tabellarische) islamische Zivilkalender. |
Siehe auch QCalendar und QCalendar::SystemId.
Dokumentation der Mitgliederfunktionen
[explicit]
QCalendar::QCalendar()
[explicit]
QCalendar::QCalendar(QAnyStringView name)
[explicit]
QCalendar::QCalendar(QCalendar::System system)
Konstruiert ein Kalenderobjekt.
Die Wahl des zu verwendenden Kalenders kann durch system, unter Verwendung der Aufzählung QCalendar::System, oder durch name, unter Verwendung einer Zeichenkette (entweder Unicode oder Latin 1), angegeben werden. Die Konstruktion nach Name kann davon abhängen, dass eine Instanz des angegebenen Kalenders zuerst auf andere Weise konstruiert wurde. Ohne Argument gibt der Standardkonstruktor den Gregorianischen Kalender zurück.
Hinweis: In Qt-Versionen vor 6.4 akzeptierte der Konstruktor von name nur QStringView und QLatin1String, nicht QAnyStringView.
Siehe auch QCalendar, System, und isValid().
QDate QCalendar::dateFromParts(const QCalendar::YearMonthDay &parts) const
QDate QCalendar::dateFromParts(int year, int month, int day) const
Konvertiert ein Jahr, einen Monat und einen Tag in ein QDate.
Die Zahlen year, month und day können als separate Zahlen übergeben werden oder als Mitglieder von parts zusammengefasst werden. Gibt ein QDate mit dem angegebenen Jahr, Monat und Tag des Monats in diesem Kalender zurück, wenn es einen solchen gibt. Andernfalls, einschließlich des Falls, dass einer der Werte QCalendar::Unspecified ist, wird ein QDate zurückgegeben, dessen isNull() wahr ist.
Siehe auch isDateValid() und partsFromDate().
[explicit, since 6.2]
QCalendar::QCalendar(QCalendar::SystemId id)
Dies ist eine überladene Funktion.
Konstruiert ein Kalenderobjekt.
Bei Verwendung einer benutzerdefinierten Kalenderimplementierung wird dem Backend bei der Erstellung eine eindeutige ID zugewiesen; die Übergabe dieser ID als id an diesen Konstruktor liefert einen QCalendar, der dieses Backend verwendet. Dies kann nützlich sein, wenn das Backend nicht namentlich registriert ist.
Diese Funktion wurde in Qt 6.2 eingeführt.
[static]
QStringList QCalendar::availableCalendars()
Gibt eine Liste der Namen der verfügbaren Kalendersysteme zurück.
Diese können durch Plugins oder anderen in eine Anwendung eingebundenen Code bereitgestellt werden, zusätzlich zu den von Qt bereitgestellten, von denen einige durch Funktionen gesteuert werden.
QString QCalendar::dateTimeToString(QStringView format, const QDateTime &datetime, QDate dateOnly, QTime timeOnly, const QLocale &locale) const
Gibt eine Zeichenkette zurück, die ein gegebenes Datum, eine gegebene Zeit oder eine gegebene Uhrzeit darstellt.
Wenn datetime gültig ist, wird es dargestellt und Formatangaben für Datums- und Zeitfelder werden erkannt; andernfalls, wenn dateOnly gültig ist, wird es dargestellt und nur Formatangaben für Datumsfelder werden erkannt; schließlich, wenn timeOnly gültig ist, wird es dargestellt und nur Formatangaben für Zeitfelder werden erkannt. Wenn keine dieser Angaben gültig ist, wird eine leere Zeichenkette zurückgegeben.
Siehe QDate::toString und QTime::toString() für die unterstützten Feldbezeichner. Zeichen in format, die als Feldbezeichner erkannt werden, werden durch Text ersetzt, der die entsprechenden Daten des darzustellenden Datums und/oder der Uhrzeit repräsentiert. Die Texte, die sie repräsentieren, können von dem angegebenen locale abhängen. Andere Zeichen in format werden wortwörtlich in die zurückgegebene Zeichenkette kopiert.
Siehe auch monthName(), weekDayName(), QDate::toString(), und QTime::toString().
int QCalendar::dayOfWeek(QDate date) const
Gibt die Nummer des Wochentags für das angegebene date zurück.
Gibt Null zurück, wenn der Kalender das angegebene Datum nicht darstellen kann. Gibt 1 für Montag bis 7 für Sonntag zurück. Kalender mit Zwischentagen können andere Zahlen verwenden, um diese darzustellen.
Siehe auch partsFromDate() und Qt::DayOfWeek.
int QCalendar::daysInMonth(int month, int year = Unspecified) const
Gibt die Anzahl der Tage im angegebenen month des angegebenen year zurück.
Die Monate werden fortlaufend nummeriert, beginnend mit 1 für den ersten Monat eines jeden Jahres. Wenn year Unspecified
ist (die Vorgabe, falls nicht übergeben), wird die Länge des Monats in einem normalen Jahr zurückgegeben.
Siehe auch maximumDaysInMonth() und minimumDaysInMonth().
int QCalendar::daysInYear(int year) const
Gibt die Anzahl der Tage in der angegebenen year zurück.
Die Behandlung von Unspecified
als year ist undefiniert.
bool QCalendar::hasYearZero() const
Gibt true
zurück, wenn dieser Kalender ein Jahr Null hat.
Ein Kalender kann Jahre ab seinem ersten Jahr darstellen, aber keine Möglichkeit bieten, Jahre vor seinem ersten Jahr zu beschreiben; ein solcher Kalender hat kein Jahr Null und ist nicht proleptisch.
Ein Kalender, der Jahre vor seinem ersten Jahr darstellt, kann diese Jahre einfach durch die übliche ganzzahlige Zählung nummerieren, so dass das Jahr vor dem ersten Jahr das Jahr Null ist, wobei diesem Jahr negative Zahlen vorausgehen; ein solcher Kalender ist proleptisch und hat ein Jahr Null. Ein solcher Kalender ist proleptisch und hat ein Jahr Null (z. B. das Jahr eines großen Ereignisses, wobei die folgenden Jahre das erste Jahr nach diesem Ereignis, das zweite Jahr danach usw. sind), ohne dass die Jahre vor dem Jahr Null beschrieben werden. Ein solcher Kalender würde ein Jahr Null haben, ohne proleptisch zu sein.
In einigen Kalendern werden die Jahre vor dem ersten Jahr jedoch durch eine andere Nummerierung dargestellt; so ist beispielsweise das erste Jahr des proleptischen Gregorianischen Kalenders das Jahr 1 n. Chr. und das Jahr davor ist das Jahr 1 v. Chr., dem das Jahr 2 v. Chr. vorausgeht und so weiter. In diesem Fall verwenden wir negative Jahreszahlen für diese alternative Nummerierung, wobei das Jahr -1 das Jahr vor dem Jahr 1 ist, das Jahr -2 das Jahr vor dem Jahr -1 und so weiter. Ein solcher Kalender ist proleptisch, hat aber kein Jahr Null.
Siehe auch isProleptic().
bool QCalendar::isDateValid(int year, int month, int day) const
Gibt true
genau dann zurück, wenn die angegebenen year, month und day ein gültiges Datum in diesem Kalender angeben.
Normalerweise bedeutet dies 1 <= Monat <= monthsInYear(Jahr) und 1 <= Tag <= daysInMonth(Monat, Jahr). Bei Kalendern mit Zwischentagen oder -monaten kann dies jedoch komplizierter sein.
bool QCalendar::isGregorian() const
Gibt true
zurück, wenn dieses Kalenderobjekt der Gregorianische Kalender ist, der von anderen Qt-APIs als Standardkalender verwendet wird, z. B. in QDate.
bool QCalendar::isLeapYear(int year) const
Gibt true
zurück, wenn das angegebene year ein Schaltjahr ist.
Da das Jahr nicht aus einer ganzen Anzahl von Tagen besteht, sind einige Jahre länger als andere. Der Unterschied kann ein ganzer Monat oder nur ein einzelner Tag sein; die Details variieren zwischen den Kalendern.
Siehe auch isDateValid().
bool QCalendar::isLunar() const
Gibt true
zurück, wenn dieser Kalender ein Mondkalender ist.
Ein Mondkalender ist ein Kalender, der hauptsächlich auf den Phasen des Mondes basiert.
bool QCalendar::isLuniSolar() const
Gibt true
zurück, wenn dieser Kalender luni-solar ist.
Ein Luni-Solar-Kalender gibt die Mondphasen wieder, passt sich aber auch an die wechselnde Position der Sonne am Himmel im Verhältnis zu den Fixsternen an.
bool QCalendar::isProleptic() const
Gibt true
zurück, wenn dieser Kalender proleptisch ist.
Ein proleptischer Kalender ist in der Lage, Jahre zu beschreiben, die beliebig lange vor seinem ersten liegen. Diese werden durch negative Jahreszahlen und möglicherweise durch ein Jahr Null dargestellt.
Siehe auch hasYearZero().
bool QCalendar::isSolar() const
Gibt true
zurück, wenn dieser Kalender ein Sonnenkalender ist.
Ein Sonnenkalender basiert in erster Linie auf der wechselnden Position der Sonne am Himmel im Verhältnis zu den Fixsternen.
bool QCalendar::isValid() const
Gibt true zurück, wenn dies ein gültiges Kalenderobjekt ist.
Das Erstellen eines Kalenders mit einem nicht erkannten Kalendernamen kann zu einem ungültigen Objekt führen. Verwenden Sie diese Methode, um nach der Erstellung eines Kalenders nach Namen zu prüfen.
[since 6.7]
QDate QCalendar::matchCenturyToWeekday(const QCalendar::YearMonthDay &parts, int dow) const
Passt das Jahrhundert eines Datums an einen bestimmten Wochentag an.
Wird verwendet, wenn der Wochentag, der Tag des Monats, der Monat und die letzten beiden Ziffern des Jahres eines Datums angegeben sind. Gibt eine QDate Instanz mit dem angegebenen dow als dayOfWeek() zurück, die mit dem angegebenen parts in Monat und Tag des Monats übereinstimmt. Die year() des zurückgegebenen QDate muss sich von parts.year
um ein Vielfaches von 100 unterscheiden, wobei kleine Vielfache gegenüber größeren und positive Vielfache gegenüber ihren Negationen bevorzugt werden.
Wenn kein Datum diese Bedingungen erfüllt, wird ein ungültiges QDate zurückgegeben: Der Wochentag ist mit den anderen angegebenen Daten nicht vereinbar. Dies ist z. B. beim Gregorianischen Kalender der Fall, dessen 400-Jahres-Zyklus eine ganze Zahl von Wochen umfasst, so dass ein bestimmter Monat und ein bestimmter Tag dieses Monats in Jahren mit bestimmten letzten beiden Ziffern immer nur auf vier Wochentage fällt. (In dem besonderen Fall des 29. Februar zur Jahrhundertwende, wenn es sich um ein Schaltjahr handelt, ist nur ein Wochentag möglich: Dienstag.)
Diese Funktion wurde in Qt 6.7 eingeführt.
int QCalendar::maximumDaysInMonth() const
Gibt die Anzahl der Tage im längsten Monat des Kalenders in einem beliebigen Jahr zurück.
Siehe auch daysInMonth() und minimumDaysInMonth().
int QCalendar::maximumMonthsInYear() const
Gibt die größte Anzahl von Monaten zurück, die ein Jahr enthalten kann.
Siehe auch monthName(), standaloneMonthName(), und monthsInYear().
int QCalendar::minimumDaysInMonth() const
Gibt die Anzahl der Tage im kürzesten Monat des Kalenders in einem beliebigen Jahr zurück.
Siehe auch daysInMonth() und maximumDaysInMonth().
QString QCalendar::monthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const
Gibt einen geeigneten lokalisierten Namen für einen Monat zurück.
Der Monat wird durch eine Zahl angegeben, wobei month = 1 für den ersten Monat des Jahres steht und die nachfolgenden Monate entsprechend nummeriert sind. Gibt eine leere Zeichenkette zurück, wenn die Nummer month nicht bekannt ist.
year kann Unspecified sein. In diesem Fall sollte die Zuordnung von Zahlen zu Namen für die Monate eines typischen Jahres verwendet werden. Einige Kalender haben Schaltmonate, die nicht immer am Ende des Jahres liegen; ihre Zuordnung von Monatsnummern zu Namen kann dann von der Platzierung eines Schaltmonats abhängen. Daher sollte normalerweise das Jahr angegeben werden, sofern es bekannt ist.
Der Name wird in der Form zurückgegeben, die normalerweise in einem vollständigen Datum verwendet würde, in der angegebenen locale; die format bestimmt, wie vollständig er ausgedrückt werden soll (d.h. in welchem Umfang er abgekürzt wird).
Siehe auch standaloneMonthName(), maximumMonthsInYear(), und dateTimeToString().
int QCalendar::monthsInYear(int year) const
Gibt die Anzahl der Monate im angegebenen year zurück.
Wenn year gleich Unspecified
ist, wird die maximale Anzahl der Monate in einem Jahr zurückgegeben.
Siehe auch maximumMonthsInYear().
QString QCalendar::name() const
Der Hauptname dieses Kalenders.
Der Kalender kann auch unter einigen Aliasnamen bekannt sein. Ein durch name instanziierter Kalender kann einen solchen Alias verwenden; in diesem Fall muss sein name() nicht mit dem Alias übereinstimmen, durch den er instanziiert wurde.
QCalendar::YearMonthDay QCalendar::partsFromDate(QDate date) const
Konvertiert eine QDate in ein Jahr, einen Monat und einen Tag des Monats.
Die zurückgegebene Struktur isValid() ist false, wenn der Kalender nicht in der Lage ist, den angegebenen date darzustellen. Andernfalls erfassen die Mitglieder Jahr, Monat und Tag die so benannten Teile der Darstellung.
Siehe auch dateFromParts(), isProleptic(), und hasYearZero().
QString QCalendar::standaloneMonthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const
Gibt einen angemessen lokalisierten, eigenständigen Namen für einen Monat zurück.
Der Monat wird durch eine Zahl angegeben, wobei month = 1 für den ersten Monat des Jahres steht und die nachfolgenden Monate entsprechend nummeriert sind. Gibt eine leere Zeichenkette zurück, wenn die Nummer month nicht bekannt ist.
year kann Unspecified sein. In diesem Fall sollte die Zuordnung von Zahlen zu Namen für die Monate eines typischen Jahres verwendet werden. Einige Kalender haben Schaltmonate, die nicht immer am Ende des Jahres liegen; ihre Zuordnung von Monatsnummern zu Namen kann dann von der Platzierung eines Schaltmonats abhängen. Daher sollte normalerweise das Jahr angegeben werden, sofern es bekannt ist.
Der Name wird in der Form zurückgegeben, die isoliert in der angegebenen locale verwendet werden würde; die format bestimmt, wie vollständig er ausgedrückt werden soll (d. h. in welchem Umfang er abgekürzt wird).
Siehe auch monthName(), maximumMonthsInYear(), und dateTimeToString().
QString QCalendar::standaloneWeekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const
Gibt einen angemessen lokalisierten, eigenständigen Namen für einen Wochentag zurück.
Die Wochentage sind von 1 für Montag bis 7 für Sonntag durchnummeriert. Einige Kalender unterstützen möglicherweise höhere Zahlen für andere Tage (z. B. interkonfessionelle Tage, die nicht Teil einer Woche sind). Gibt eine leere Zeichenkette zurück, wenn die Nummer day nicht bekannt ist.
Der Name wird in der Form zurückgegeben, wie er isoliert (z. B. als Spaltenüberschrift in der tabellarischen Darstellung eines Monats mit aufeinanderfolgenden Wochen als Zeilen) in der angegebenen locale verwendet werden würde. format bestimmt, wie vollständig er ausgedrückt werden soll (d. h. in welchem Umfang er abgekürzt wird).
Siehe auch weekDayName() und dayOfWeek().
QString QCalendar::weekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const
Gibt einen geeigneten lokalisierten Namen für einen Wochentag zurück.
Die Wochentage sind von 1 für Montag bis 7 für Sonntag durchnummeriert. Einige Kalender unterstützen möglicherweise höhere Zahlen für andere Tage (z. B. interkonfessionelle Tage, die nicht Teil einer Woche sind). Gibt eine leere Zeichenkette zurück, wenn die Nummer day nicht bekannt ist.
Der Name wird in der Form zurückgegeben, die normalerweise in einem vollständigen Datum verwendet wird, in der angegebenen locale; die format bestimmt, wie vollständig er ausgedrückt werden soll (d. h. in welchem Umfang er abgekürzt wird).
Siehe auch standaloneWeekDayName() und dayOfWeek().
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.