Auf dieser Seite

QCalendar Class

Die Klasse „QCalendar“ beschreibt Kalendersysteme. Mehr dazu...

Header: #include <QCalendar>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Hinweis: Alle Funktionen 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()

Ausführliche Beschreibung

Ein QCalendar-Objekt ordnet anhand der Regeln eines bestimmten Systems ein Jahr, einen Monat und eine Tageszahl einem bestimmten Tag zu (der letztendlich durch seine julianische Tageszahl identifiziert wird).

Der Standard-QCalendar() ist ein proleptischer gregorianischer Kalender, der kein Jahr Null kennt. Andere Kalender können durch Aktivierung entsprechender Funktionen oder durch Laden von Plugins unterstützt werden. Als Funktionen unterstützte Kalender können durch Übergabe der Enumeration „ QCalendar::System “ an den Konstruktor erstellt werden. Alle unterstützten Kalender können nach ihrem Namen instanziiert werden, sobald sie einmal erstellt wurden. (Daher instanziieren Plugins ihr Kalender-Backend, um es zu registrieren.) Integrierte Backends, auf die über ` QCalendar::System` zugegriffen werden kann, sind ebenfalls immer über ihren Namen verfügbar. Kalender, die benutzerdefinierte Backends verwenden, können auch mithilfe einer eindeutigen ID instanziiert werden, die dem Backend bei der Erstellung zugewiesen wird.

Ein QCalendar-Wert ist unveränderlich.

Siehe auch „ QDate “ und „ QDateTime “.

Dokumentation zu den Mitgliedstypen

enum class QCalendar::System

Dieser Aufzählungstyp dient zur Angabe eines Kalendersystems.

KonstanteWertBeschreibung
QCalendar::System::Gregorian0Der Standardkalender, der international verwendet wird.
QCalendar::System::Julian8Ein antiker römischer Kalender.
QCalendar::System::Milankovic9Ein überarbeiteter julianischer Kalender, der von einigen orthodoxen Kirchen verwendet wird.
QCalendar::System::Jalali10Der solare Hijri-Kalender (auch als persischer Kalender bezeichnet).
QCalendar::System::IslamicCivil11Der (tabellarische) islamische Zivilkalender.

Siehe auch QCalendar und QCalendar::SystemId.

Dokumentation zu Member-Funktionen

[explicit] QCalendar::QCalendar()

[explicit] QCalendar::QCalendar(QAnyStringView name)

[explicit] QCalendar::QCalendar(QCalendar::System system)

Erstellt ein Kalenderobjekt.

Die Auswahl des zu verwendenden Kalenders kann über ` system` unter Verwendung der Aufzählung ` QCalendar::System` oder über ` name` unter Verwendung einer Zeichenkette (entweder Unicode oder Latin 1) erfolgen. Die Erstellung anhand eines Namens kann davon abhängen, dass zuvor auf andere Weise eine Instanz des angegebenen Kalenders erstellt wurde. Ohne Argument gibt der Standardkonstruktor den gregorianischen Kalender zurück.

Hinweis: In Qt-Versionen vor 6.4 akzeptierte der Konstruktor „ name “ nur „ QStringView “ und „ QLatin1String “, nicht jedoch „ QAnyStringView “.

Siehe auch QCalendar, System und isValid().

[explicit, since 6.2] QCalendar::QCalendar(QCalendar::SystemId id)

Erstellt ein Kalenderobjekt.

Bei Verwendung einer benutzerdefinierten Kalenderimplementierung wird deren Backend bei der Erstellung eine eindeutige ID zugewiesen; wird diese als „ id “ an diesen Konstruktor übergeben, wird ein `QCalendar` erstellt, der dieses Backend verwendet. Dies kann nützlich sein, wenn das Backend nicht namentlich registriert ist.

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.2 eingeführt.

[static] QStringList QCalendar::availableCalendars()

Gibt eine Liste mit den Namen der verfügbaren Kalendersysteme zurück.

Diese können von Plugins oder anderem in eine Anwendung eingebundenen Code bereitgestellt werden, zusätzlich zu den von Qt bereitgestellten, von denen einige über Funktionen gesteuert werden.

QDate QCalendar::dateFromParts(const QCalendar::YearMonthDay &parts) const

QDate QCalendar::dateFromParts(int year, int month, int day) const

Konvertiert Jahr, Monat und Tag in ein „ QDate “-Format.

Die Werte für „ year “, „ month “ und „ day “ können als separate Zahlen übergeben oder zusammen als Elemente von „ parts “ übermittelt werden. Gibt ein „ QDate “ mit dem angegebenen Jahr, Monat und Tag des Monats in diesem Kalender zurück, sofern vorhanden. Andernfalls, einschließlich des Falls, in dem einer der Werte QCalendar::Unspecified ist, wird ein „ QDate “ zurückgegeben, dessen isNull()-Methode „true“ zurückgibt. Liegt das dargestellte Datum außerhalb des von „ QDate “ unterstützten Bereichs, muss die isValid()-Methode des zurückgegebenen „ QDate “ den Wert „false“ zurückgeben.

Siehe auch „ isDateValid()“ und „ partsFromDate()“.

QString QCalendar::dateTimeToString(QStringView format, const QDateTime &datetime, QDate dateOnly, QTime timeOnly, const QLocale &locale) const

Gibt eine Zeichenkette zurück, die ein bestimmtes Datum, eine bestimmte Uhrzeit oder ein bestimmtes Datums- und Zeitformat darstellt.

Ist „ datetime “ gültig, wird es dargestellt und Formatbezeichner sowohl für Datums- als auch für Zeitfelder werden erkannt; andernfalls wird, sofern „ dateOnly “ gültig ist, dieses dargestellt und nur Formatbezeichner für Datumsfelder werden erkannt; schließlich wird, sofern „ timeOnly “ gültig ist, dieses dargestellt und nur Formatbezeichner für Zeitfelder werden erkannt. Ist keine dieser Angaben gültig, wird eine leere Zeichenkette zurückgegeben.

Siehe QDate::toString und QTime::toString() für die unterstützten Feldspezifizierer. Zeichen in format, die als Feldspezifizierer erkannt werden, werden durch Text ersetzt, der die entsprechenden Daten aus dem dargestellten Datum und/oder der dargestellten Uhrzeit repräsentiert. Die Texte, die diese darstellen, können von der angegebenen locale abhängen. Andere Zeichen in format werden unverändert in die zurückgegebene Zeichenkette kopiert.

Siehe auch monthName(), weekDayName(), QDate::toString() und QTime::toString().

int QCalendar::dayOfWeek(QDate date) const

Gibt die Wochentagsnummer für das angegebene Datum „ 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 Schalt-Tagen können andere Zahlen zur Darstellung verwenden.

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 jedes Jahres. Wenn „ year “ gleich „ Unspecified “ ist (Standardwert, falls nicht anders angegeben), wird die größte Länge des Monats in einem beliebigen Jahr zurückgegeben.

Siehe auch maximumDaysInMonth() und minimumDaysInMonth().

int QCalendar::daysInYear(int year) const

Gibt die Anzahl der Tage im angegebenen „ year “ zurück.

Die Behandlung von ` Unspecified ` als ` year ` ist nicht definiert.

bool QCalendar::hasYearZero() const

Gibt „ true “ zurück, wenn dieser Kalender ein Jahr Null enthält.

Ein Kalender kann Jahre ab seinem ersten Jahr darstellen, bietet jedoch keine Möglichkeit, 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 nach der üblichen ganzzahligen Zählweise nummerieren, sodass das Jahr vor dem ersten Jahr das Jahr Null ist und diesem Jahre mit negativen Zahlen vorausgehen; ein solcher Kalender ist proleptisch und verfügt über ein Jahr Null. Ein Kalender kann auch ein Jahr Null haben (zum Beispiel das Jahr eines großen Ereignisses, wobei die nachfolgenden Jahre das erste Jahr nach diesem Ereignis, das zweite Jahr danach usw. sind), ohne Jahre vor seinem Jahr Null zu beschreiben. Ein solcher Kalender hätte ein Jahr Null, ohne proleptisch zu sein.

Einige Kalender stellen jedoch die Jahre vor ihrem ersten Jahr durch eine alternative Nummerierung dar; zum Beispiel ist das erste Jahr des proleptischen gregorianischen Kalenders 1 n. Chr. und das Jahr davor 1 v. Chr., dem 2 v. Chr. vorausgeht und so weiter. In diesem Fall verwenden wir für diese alternative Nummerierung negative Jahreszahlen, 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 genau dann „ true “ zurück, wenn die angegebenen Werte „ year “, „ month “ und „ day “ ein gültiges Datum in diesem Kalender angeben.

Normalerweise bedeutet dies, dass 1 <= Monat <= monthsInYear(Jahr) und 1 <= Tag <= daysInMonth(Monat, Jahr) gilt. Kalender mit Schalt-Tagen oder -Monaten können dies jedoch erschweren.

bool QCalendar::isGregorian() const

Gibt „ true “ zurück, wenn es sich bei diesem Kalenderobjekt um das gregorianische Kalenderobjekt handelt, das 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 Jahr „ year “ ein Schaltjahr ist.

Da ein Jahr nicht aus einer ganzen Anzahl von Tagen besteht, sind manche Jahre länger als andere. Der Unterschied kann ein ganzer Monat oder nur ein einziger Tag betragen; die Einzelheiten variieren je nach Kalender.

Siehe auch isDateValid().

bool QCalendar::isLunar() const

Gibt „ true “ zurück, wenn es sich bei diesem Kalender um einen Mondkalender handelt.

Ein Mondkalender ist ein Kalender, der sich in erster Linie nach den Mondphasen richtet.

bool QCalendar::isLuniSolar() const

Gibt „ true “ zurück, wenn es sich bei diesem Kalender um einen Mond-Sonnen-Kalender handelt.

Ein Mond-Sonnen-Kalender gibt die Mondphasen wieder, passt sich jedoch an, um auch die sich ändernde Position der Sonne am Himmel im Verhältnis zu den Fixsternen zu erfassen.

bool QCalendar::isProleptic() const

Gibt „ true “ zurück, wenn dieser Kalender proleptisch ist.

Ein proleptischer Kalender kann Jahre beschreiben, die beliebig lange vor seinem ersten Jahr 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 es sich um einen Sonnenkalender handelt.

Ein Sonnenkalender basiert in erster Linie auf der sich ändernden Position der Sonne am Himmel im Verhältnis zu den Fixsternen.

bool QCalendar::isValid() const

Gibt „true“ zurück, wenn es sich um ein gültiges Kalenderobjekt handelt.

Das Erstellen eines Kalenders mit einem unbekannten Kalendernamen kann zu einem ungültigen Objekt führen. Verwenden Sie diese Methode, um nach dem Erstellen eines Kalenders anhand seines Namens zu überprüfen, ob er gültig ist.

[since 6.7] QDate QCalendar::matchCenturyToWeekday(const QCalendar::YearMonthDay &parts, int dow) const

Passt das Jahrhundert eines Datums so an, dass es mit einem bestimmten Wochentag übereinstimmt.

Zur Verwendung, wenn der Wochentag, der Tag des Monats, der Monat und die letzten beiden Ziffern des Jahres eines Datums angegeben werden. Gibt eine ` QDate `-Instanz zurück, deren ` dayOfWeek()` die angegebene ` dow ` enthält und die in Bezug auf Monat und Tag des Monats mit dem angegebenen ` parts ` übereinstimmt. Die von der zurückgegebenen ` QDate` zurückgegebenen ` year()` weichen von ` parts.year ` um ein Vielfaches von 100 ab, wobei kleinere Vielfache den größeren und positive Vielfache ihren negativen Vorzeichen vorgezogen werden.

Wenn kein Datum diese Bedingungen erfüllt, wird ein ungültiges ` QDate ` zurückgegeben: Der Wochentag ist mit den anderen angegebenen Daten unvereinbar. Dies tritt beispielsweise beim gregorianischen Kalender auf, dessen 400-Jahres-Zyklus eine ganze Anzahl von Wochen umfasst, sodass ein bestimmter Monat und Tag dieses Monats in Jahren mit bestimmten letzten beiden Ziffern immer nur auf vier Wochentage fällt. (Im Sonderfall 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 entsprechend lokalisierten Namen für einen Monat zurück.

Der Monat wird durch eine Zahl angegeben, wobei „ month “ = 1 den ersten Monat des Jahres bezeichnet und die nachfolgenden Monate entsprechend nummeriert sind. Gibt eine leere Zeichenkette zurück, wenn die Zahl „ month “ nicht erkannt wird.

Die „ year “ kann „Unspecified“ lauten; in diesem Fall sollte die Zuordnung von Zahlen zu Namen für die Monate eines typischen Jahres verwendet werden. Einige Kalender weisen Schaltmonate auf, die nicht immer am Ende des Jahres liegen; ihre Zuordnung von Monatszahlen zu Namen kann dann von der Platzierung eines Schaltmonats abhängen. Daher sollte das Jahr normalerweise angegeben werden, sofern es bekannt ist.

Der Name wird in der Form zurückgegeben, die normalerweise in einem vollständigen Datum verwendet würde, und zwar in der angegebenen „ locale “; die „ format “ bestimmt, wie vollständig er ausgedrückt werden soll (d. h., inwieweit 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 von Monaten in einem Jahr zurückgegeben.

Siehe auch ` maximumMonthsInYear()`.

QString QCalendar::name() const

Der primäre Name dieses Kalenders.

Der Kalender kann auch unter bestimmten Aliasnamen bekannt sein. Ein nach seinem Namen instanziierter Kalender kann einen solchen Aliasnamen verwenden; in diesem Fall muss seine name()-Methode nicht mit dem Aliasnamen übereinstimmen, unter dem er instanziiert wurde.

QCalendar::YearMonthDay QCalendar::partsFromDate(QDate date) const

Wandelt ein „ QDate “ in ein Jahr, einen Monat und einen Tag des Monats um.

Die Eigenschaft ` isValid()` der zurückgegebenen Struktur muss den Wert `false` annehmen, wenn der Kalender das angegebene ` date ` nicht darstellen kann (oder wenn dessen Jahr außerhalb des Bereichs liegt, den ` int ` darstellen kann). Andernfalls enthalten die Elemente „Jahr“, „Monat“ und „Tag“ die entsprechenden 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 entsprechend lokalisierten, eigenständigen Namen für einen Monat zurück.

Der Monat wird durch eine Zahl angegeben, wobei „ month “ = 1 den ersten Monat des Jahres bezeichnet und die nachfolgenden Monate entsprechend nummeriert sind. Gibt eine leere Zeichenkette zurück, wenn die Zahl „ month “ nicht erkannt wird.

Die „ year “ kann „Unspecified“ lauten; in diesem Fall sollte die Zuordnung von Zahlen zu Namen für die Monate eines typischen Jahres verwendet werden. Einige Kalender weisen Schaltmonate auf, die nicht immer am Ende des Jahres liegen; ihre Zuordnung von Monatszahlen zu Namen kann dann von der Position eines Schaltmonats abhängen. Daher sollte das Jahr normalerweise angegeben werden, sofern es bekannt ist.

Der Name wird in der Form zurückgegeben, die isoliert in der angegebenen „ locale “ verwendet würde; die „ format “ bestimmt, wie vollständig er ausgedrückt werden soll (d. h., inwieweit 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 entsprechend lokalisierten, eigenständigen Namen für einen Wochentag zurück.

Die Wochentage sind von 1 für Montag bis 7 für Sonntag nummeriert. Einige Kalender unterstützen möglicherweise höhere Zahlen für andere Tage (z. B. Schalttage, die zu keiner Woche gehören). Gibt eine leere Zeichenkette zurück, wenn die Zahl „ day “ nicht erkannt wird.

Der Name wird in der Form zurückgegeben, wie er isoliert verwendet würde (z. B. als Spaltenüberschrift in der tabellarischen Monatsansicht eines Kalenders, in der aufeinanderfolgende Wochen als Zeilen dargestellt werden) in der angegebenen „ locale “; der Parameter „ format “ bestimmt, wie vollständig er ausgedrückt werden soll (d. h. inwieweit 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 entsprechend lokalisierten Namen für einen Wochentag zurück.

Die Wochentage sind von 1 für Montag bis 7 für Sonntag nummeriert. Einige Kalender unterstützen möglicherweise höhere Zahlen für andere Tage (z. B. Schalttage, die zu keiner Woche gehören). Gibt eine leere Zeichenkette zurück, wenn die Zahl „ day “ nicht erkannt wird.

Der Name wird in der Form zurückgegeben, wie er normalerweise in einem vollständigen Datum in der angegebenen Landessprache („ locale “) verwendet würde; der Parameter „ format “ bestimmt, wie vollständig er ausgedrückt werden soll (d. h., inwieweit er abgekürzt wird).

Siehe auch ` standaloneWeekDayName()` und ` dayOfWeek()`.

© 2026 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.