Sur cette page

QCalendar Class

La classe QCalendar décrit les systèmes de calendrier. En savoir plus...

En-tête : #include <QCalendar>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Remarque : toutes les fonctions de cette classe sont réentrantes.

Types publics

(since 6.2) class SystemId
enum class System { Gregorian, Julian, Milankovic, Jalali, IslamicCivil }

Fonctions publiques

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

Membres publics statiques

QStringList availableCalendars()

Description détaillée

Un objet QCalendar associe une année, un mois et un numéro de jour à un jour spécifique (identifié en fin de compte par son numéro de jour julien), en utilisant les règles d’un système particulier.

Par défaut, QCalendar() correspond à un calendrier grégorien proleptique, qui ne comporte pas d’année zéro. D’autres calendriers peuvent être pris en charge en activant les fonctionnalités appropriées ou en chargeant des plugins. Les calendriers pris en charge en tant que fonctionnalités peuvent être créés en passant l’énumération QCalendar::System au constructeur. Tous les calendriers pris en charge peuvent être instanciés par leur nom, une fois qu’ils ont été créés. (Ainsi, les plugins instancient leur backend de calendrier pour l’enregistrer.) Les backends intégrés, accessibles via ` QCalendar::System`, sont également toujours disponibles par leur nom. Les calendriers utilisant des backends personnalisés peuvent également être instanciés à l’aide d’un identifiant unique attribué au backend lors de sa création.

Une valeur QCalendar est immuable.

Voir également QDate et QDateTime.

Documentation sur les types de membres

enum class QCalendar::System

Ce type énuméré sert à spécifier le choix d'un système de calendrier.

ConstanteValeurDescription
QCalendar::System::Gregorian0Le calendrier par défaut, utilisé à l’échelle internationale.
QCalendar::System::Julian8Un ancien calendrier romain.
QCalendar::System::Milankovic9Un calendrier julien révisé utilisé par certaines Églises orthodoxes.
QCalendar::System::Jalali10Le calendrier hégirien solaire (également appelé calendrier persan).
QCalendar::System::IslamicCivil11Le calendrier civil islamique (sous forme de tableau).

Voir également QCalendar et QCalendar::SystemId.

Documentation sur les fonctions membres

[explicit] QCalendar::QCalendar()

[explicit] QCalendar::QCalendar(QAnyStringView name)

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

Crée un objet calendrier.

Le choix du calendrier à utiliser peut être indiqué par ` system`, à l'aide de l'énumération ` QCalendar::System`, ou par ` name`, à l'aide d'une chaîne de caractères (Unicode ou Latin 1). La construction par nom peut nécessiter qu'une instance du calendrier donné ait d'abord été créée par d'autres moyens. Sans argument, le constructeur par défaut renvoie le calendrier grégorien.

Remarque : dans les versions de Qt antérieures à la version 6.4, le constructeur par name n'acceptait que QStringView et QLatin1String, et non QAnyStringView.

Voir également QCalendar, System et isValid().

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

Crée un objet calendrier.

Lorsque vous utilisez une implémentation de calendrier personnalisée, un identifiant unique est attribué à son backend lors de sa création ; en transmettant cet identifiant en tant qu id e à ce constructeur, vous obtiendrez un QCalendar utilisant ce backend. Cela peut s'avérer utile lorsque le backend n'est pas enregistré par son nom.

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.2.

[static] QStringList QCalendar::availableCalendars()

Renvoie une liste des noms des systèmes de calendrier disponibles.

Ceux-ci peuvent être fournis par des plugins ou d'autres codes liés à une application, en plus de ceux fournis par Qt, dont certains sont contrôlés par des fonctionnalités.

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

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

Convertit une année, un mois et un jour en une date au format « QDate ».

Les paramètres ` year`, ` month` et ` day ` peuvent être transmis sous forme de nombres distincts ou regroupés en tant que membres d’un objet ` parts`. Renvoie un objet ` QDate ` contenant l’année, le mois et le jour du mois spécifiés dans ce calendrier, s’il en existe un. Dans le cas contraire, y compris lorsque l’une des valeurs est QCalendar::Unspecified, renvoie un QDate dont la méthode isNull() est vraie. Si la date représentée se situe en dehors de la plage prise en charge par QDate, la méthode isValid() de l’ QDate renvoyé doit être fausse.

Voir également isDateValid() et partsFromDate().

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

Renvoie une chaîne de caractères représentant une date, une heure ou une date-heure donnée.

Si datetime est valide, elle est représentée et les spécificateurs de format pour les champs de date et d'heure sont reconnus ; sinon, si dateOnly est valide, elle est représentée et seuls les spécificateurs de format pour les champs de date sont reconnus ; enfin, si timeOnly est valide, elle est représentée et seuls les spécificateurs de format pour les champs d'heure sont reconnus. Si aucune de ces expressions n’est valide, une chaîne vide est renvoyée.

Voir QDate::toString et QTime::toString() pour les spécificateurs de champ pris en charge. Les caractères de format qui sont reconnus comme des spécificateurs de champ sont remplacés par du texte représentant les données appropriées issues de la date et/ou de l’heure représentée. Les textes utilisés pour les représenter peuvent dépendre de l’ locale e spécifiée. Les autres caractères de format sont copiés tels quels dans la chaîne renvoyée.

Voir également monthName(), weekDayName(), QDate::toString() et QTime::toString().

int QCalendar::dayOfWeek(QDate date) const

Renvoie le numéro du jour de la semaine correspondant à l'date.

Renvoie zéro si le calendrier ne peut pas représenter la date indiquée. Renvoie 1 pour le lundi et 7 pour le dimanche. Les calendriers comportant des jours intercalaires peuvent utiliser d'autres nombres pour les représenter.

Voir également ` partsFromDate()` et ` Qt::DayOfWeek`.

int QCalendar::daysInMonth(int month, int year = Unspecified) const

Renvoie le nombre de jours contenus dans l'month spécifiée de l'year.

Les mois sont numérotés consécutivement, en commençant par 1 pour le premier mois de chaque année. Si year est Unspecified (sa valeur par défaut, si elle n'est pas fournie), la durée maximale du mois au cours d'une année quelconque est renvoyée.

Voir également maximumDaysInMonth() et minimumDaysInMonth().

int QCalendar::daysInYear(int year) const

Renvoie le nombre de jours contenus dans l'year on fournie.

Le traitement de ` Unspecified ` en tant que ` year ` n'est pas défini.

bool QCalendar::hasYearZero() const

Renvoie « true » si ce calendrier comporte une année zéro.

Un calendrier peut représenter les années à partir de sa première année, mais ne fournir aucun moyen de décrire les années antérieures à celle-ci ; un tel calendrier n'a pas d'année zéro et n'est pas proleptique.

Un calendrier qui représente les années antérieures à sa première année peut numéroter ces années en suivant simplement la numérotation habituelle par nombres entiers, de sorte que l’année précédant la première soit l’année zéro, avec des années numérotées négativement qui la précèdent ; un tel calendrier est proleptique et possède une année zéro. Un calendrier peut également comporter une année zéro (par exemple, l’année d’un grand événement, les années suivantes étant la première année après cet événement, la deuxième année après, et ainsi de suite) sans décrire les années antérieures à son année zéro. Un tel calendrier comporterait une année zéro sans être proleptique.

Certains calendriers, cependant, représentent les années antérieures à leur première année par une numérotation alternative ; par exemple, la première année du calendrier grégorien proleptique est l’an 1 de notre ère et l’année qui la précède est l’an 1 avant notre ère, précédée de l’an 2 avant notre ère, et ainsi de suite. Dans ce cas, on utilise des nombres d’années négatifs pour cette numérotation alternative, l’année -1 correspondant à l’année précédant l’année 1, l’année -2 à l’année précédant l’année -1, et ainsi de suite. Un tel calendrier est proleptique mais ne comporte pas d’année zéro.

Voir également isProleptic().

bool QCalendar::isDateValid(int year, int month, int day) const

Renvoie true exactement si les valeurs fournies year, month et day indiquent une date valide dans ce calendrier.

En général, cela signifie que 1 <= mois <= monthsInYear(année) et 1 <= jour <= daysInMonth(mois, année). Cependant, les calendriers comportant des jours ou des mois intercalaires peuvent compliquer les choses.

bool QCalendar::isGregorian() const

Renvoie ` true ` si cet objet calendrier correspond au calendrier grégorien utilisé par défaut par d'autres API Qt, par exemple dans ` QDate`.

bool QCalendar::isLeapYear(int year) const

Renvoie « true » si l'année donnée year est une année bissextile.

Comme une année ne compte pas un nombre entier de jours, certaines années sont plus longues que d’autres. La différence peut correspondre à un mois entier ou à un seul jour ; les détails varient selon les calendriers.

Voir également isDateValid().

bool QCalendar::isLunar() const

Renvoie « true » si ce calendrier est un calendrier lunaire.

Un calendrier lunaire est un calendrier qui repose principalement sur les phases de la lune.

bool QCalendar::isLuniSolar() const

Renvoie « true » si ce calendrier est luni-solaire.

Un calendrier luni-solaire indique les phases de la Lune tout en s'adaptant pour suivre également la position variable du Soleil dans le ciel, par rapport aux étoiles fixes.

bool QCalendar::isProleptic() const

Renvoie « true » si ce calendrier est proleptique.

Un calendrier proleptique permet de décrire des années situées à une époque arbitrairement antérieure à sa première année. Celles-ci sont représentées par des nombres d'années négatifs et éventuellement par une année zéro.

Voir également hasYearZero().

bool QCalendar::isSolar() const

Renvoie « true » si ce calendrier est solaire.

Un calendrier solaire repose principalement sur la position variable du Soleil dans le ciel, par rapport aux étoiles fixes.

bool QCalendar::isValid() const

Renvoie « true » si l'objet calendrier est valide.

La création d'un calendrier avec un nom non reconnu peut entraîner la génération d'un objet non valide. Utilisez cette méthode pour vérifier le résultat après avoir créé un calendrier par son nom.

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

Permet d'ajuster le siècle d'une date en fonction d'un jour de la semaine donné.

À utiliser lorsqu’on dispose du jour de la semaine, du jour du mois, du mois et des deux derniers chiffres de l’année d’une date. Renvoie une instance de ` QDate ` dont l'dow ` est ` dayOfWeek()` et dont le `month` et le `day of the month` correspondent à ` parts `. L'` year()` de l'QDate` renvoyée doit différer de ` parts.year ` d'un multiple de 100, en privilégiant les petits multiples plutôt que les grands, et les multiples positifs plutôt que leurs négations.

Si aucune date ne répond à ces conditions, une valeur « QDate » (date invalide) est renvoyée : le jour de la semaine est incompatible avec les autres données fournies. Ce cas se présente, par exemple, avec le calendrier grégorien, dont le cycle de 400 ans correspond à un nombre entier de semaines ; ainsi, un mois et un jour donnés de ce mois ne tombent jamais, dans les années dont les deux derniers chiffres sont identiques, que sur quatre jours de la semaine. (Dans le cas particulier du 29 février au tournant d’un siècle, lorsque celui-ci est une année bissextile, un seul jour de la semaine est possible : le mardi.)

Cette fonction a été introduite dans Qt 6.7.

int QCalendar::maximumDaysInMonth() const

Renvoie le nombre de jours du mois le plus long de l'année civile, quelle que soit l'année.

Voir également daysInMonth() et minimumDaysInMonth().

int QCalendar::maximumMonthsInYear() const

Renvoie le nombre maximal de mois que peut compter une année.

Voir également monthName(), standaloneMonthName() et monthsInYear().

int QCalendar::minimumDaysInMonth() const

Renvoie le nombre de jours du mois le plus court du calendrier, quelle que soit l'année.

Voir également daysInMonth() et maximumDaysInMonth().

QString QCalendar::monthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const

Renvoie le nom d'un mois correctement localisé.

Le mois est indiqué par un nombre, où l'month = 1 correspond au premier mois de l'année et les mois suivants sont numérotés en conséquence. Renvoie une chaîne vide si le nombre d'month s n'est pas reconnu.

L'year peut être « Non spécifiée » ; dans ce cas, il convient d'utiliser le mappage des numéros vers les noms correspondant aux mois d'une année type. Certains calendriers comportent des mois intercalaires qui ne se situent pas toujours à la fin de l'année ; leur mappage des numéros de mois vers les noms peut alors dépendre de la position d'un mois intercalaire. Ainsi, l'année doit normalement être spécifiée, si elle est connue.

Le nom est renvoyé sous la forme qui serait normalement utilisée dans une date complète, selon l'locale spécifiée ; l'format détermine le degré d'exhaustivité de son expression (c'est-à-dire dans quelle mesure il est abrégé).

Voir également standaloneMonthName(), maximumMonthsInYear() et dateTimeToString().

int QCalendar::monthsInYear(int year) const

Renvoie le nombre de mois contenus dans l’ year donnée.

Si ` year ` est ` Unspecified`, renvoie le nombre maximal de mois dans une année.

Voir aussi maximumMonthsInYear().

QString QCalendar::name() const

Le nom principal de ce calendrier.

Le calendrier peut également être connu sous plusieurs alias. Un calendrier instancié par son nom peut utiliser un tel alias ; dans ce cas, sa méthode name() n'a pas besoin de correspondre à l'alias sous lequel il a été instancié.

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

Convertit une date « QDate » en une année, un mois et un jour du mois.

La propriété ` isValid()` de la structure renvoyée doit être à `false` si le calendrier ne peut pas représenter l’ date donnée (ou si son année se situerait en dehors de la plage que ` int ` peut représenter). Sinon, ses membres `year`, `month` et `day` enregistrent les parties ainsi nommées de sa représentation.

Voir également dateFromParts(), isProleptic() et hasYearZero().

QString QCalendar::standaloneMonthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const

Renvoie le nom d'un mois, localisé de manière appropriée et sous forme autonome.

Le mois est indiqué par un nombre, l’ month = 1 correspondant au premier mois de l’année et les mois suivants étant numérotés en conséquence. Renvoie une chaîne vide si le nombre d’ month n’est pas reconnu.

L’ year peut être « Unspecified » ; dans ce cas, il convient d’utiliser la correspondance entre les numéros et les noms des mois d’une année type. Certains calendriers comportent des mois intercalaires qui ne se situent pas toujours à la fin de l’année ; leur correspondance entre les numéros de mois et les noms peut alors dépendre de la position d’un mois intercalaire. Ainsi, l’année doit normalement être spécifiée, si elle est connue.

Le nom est renvoyé sous la forme qui serait utilisée isolément dans l'locale spécifiée ; l'format détermine dans quelle mesure il doit être exprimé (c'est-à-dire dans quelle mesure il est abrégé).

Voir également monthName(), maximumMonthsInYear() et dateTimeToString().

QString QCalendar::standaloneWeekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const

Renvoie le nom autonome et correctement localisé d'un jour de la semaine.

Les jours de la semaine sont numérotés de 1 pour le lundi à 7 pour le dimanche. Certains calendriers peuvent prendre en charge des nombres plus élevés pour d’autres jours (par exemple, les jours intercalaires, qui ne font partie d’aucune semaine). Renvoie une chaîne vide si le nombre d’ day s n’est pas reconnu.

Le nom est renvoyé sous la forme qui serait utilisée isolément (par exemple comme en-tête de colonne dans l’affichage tabulaire d’un mois d’un calendrier, avec les semaines successives en lignes) dans l’ locale spécifiée ; l’ format détermine le degré d’exhaustivité de l’expression (c’est-à-dire dans quelle mesure elle est abrégée).

Voir également weekDayName() et dayOfWeek().

QString QCalendar::weekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const

Renvoie le nom localisé d'un jour de la semaine.

Les jours de la semaine sont numérotés de 1 pour le lundi à 7 pour le dimanche. Certains calendriers peuvent prendre en charge des nombres plus élevés pour d’autres jours (par exemple, les jours intercalaires, qui ne font partie d’aucune semaine). Renvoie une chaîne vide si le nombre de l’ day e n’est pas reconnu.

Le nom est renvoyé sous la forme normalement utilisée dans une date complète, selon l’ locale spécifiée ; l’ format détermine le degré de détail de l’expression (c’est-à-dire dans quelle mesure elle est abrégée).

Voir également ` standaloneWeekDayName()` et ` 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.