QCalendar Class
La classe QCalendar décrit les systèmes de calendrier. Plus d'informations...
| 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 fait correspondre une année, un mois et un numéro de jour à un jour spécifique (finalement identifié par son numéro de jour julien), en utilisant les règles d'un système particulier.
Le QCalendar() par défaut est un calendrier grégorien proleptique, qui n'a pas d'année zéro. D'autres calendriers peuvent être supportés en activant les fonctionnalités appropriées ou en chargeant des plugins. Les calendriers supportés en tant que fonctionnalités peuvent être construits en passant l'énumération QCalendar::System au constructeur. Tous les calendriers pris en charge peuvent être construits par leur nom, une fois qu'ils ont été construits. (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 nom. Les calendriers utilisant des backends personnalisés peuvent également être construits en utilisant un identifiant unique alloué au backend lors de sa construction.
Une valeur QCalendar est immuable.
Voir aussi QDate et QDateTime.
Documentation sur les types de membres
enum class QCalendar::System
Ce type énuméré est utilisé pour spécifier un choix de système de calendrier.
| Constante | Valeur | Description |
|---|---|---|
QCalendar::System::Gregorian | 0 | Calendrier par défaut, utilisé au niveau international. |
QCalendar::System::Julian | 8 | Un ancien calendrier romain. |
QCalendar::System::Milankovic | 9 | Calendrier julien révisé utilisé par certaines églises orthodoxes. |
QCalendar::System::Jalali | 10 | Le calendrier solaire Hijri (également appelé calendrier persan). |
QCalendar::System::IslamicCivil | 11 | Le calendrier civil islamique (tabulaire). |
Voir également QCalendar et QCalendar::SystemId.
Documentation des fonctions membres
[explicit] QCalendar::QCalendar()
[explicit] QCalendar::QCalendar(QCalendar::System system)
[explicit] QCalendar::QCalendar(QAnyStringView name)
Construit un objet calendrier.
Le choix du calendrier à utiliser peut être indiqué par system, en utilisant l'énumération QCalendar::System, ou par name, en utilisant une chaîne de caractères (Unicode ou Latin 1). La construction par nom peut dépendre de la construction préalable d'une instance du calendrier donné par d'autres moyens. Sans argument, le constructeur par défaut renvoie le calendrier grégorien.
Note : Dans les versions de Qt XML antérieures à la 6.4, le constructeur par name n'acceptait que QStringView et QLatin1String, et non QAnyStringView.
Voir aussi QCalendar, System, et isValid().
[explicit, since 6.2] QCalendar::QCalendar(QCalendar::SystemId id)
Construit un objet calendrier.
Lors de l'utilisation d'une implémentation de calendrier personnalisée, son backend se voit attribuer un identifiant unique lors de sa création ; en le passant comme id à ce constructeur, on obtiendra un QCalendar utilisant ce backend. Cela peut être 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 de 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(int year, int month, int day) const
QDate QCalendar::dateFromParts(const QCalendar::YearMonthDay &parts) const
Convertit une année, un mois et un jour en QDate.
Les éléments year, month, et day peuvent être transmis en tant que nombres distincts ou regroupés en tant que membres de parts. Retourne un QDate avec l'année, le mois et le jour du mois donnés dans ce calendrier, s'il en existe un. Sinon, y compris dans le cas où l'une des valeurs est QCalendar::Unspecified, renvoie un QDate dont isNull() est vrai.
Voir aussi 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, il est représenté et les spécificateurs de format pour les champs date et heure sont reconnus ; sinon, si dateOnly est valide, il est représenté et seuls les spécificateurs de format pour les champs date sont reconnus ; enfin, si timeOnly est valide, il est représenté et seuls les spécificateurs de format pour les champs heure sont reconnus. Si aucun de ces champs n'est valide, une chaîne vide est renvoyée.
Voir QDate::toString et QTime::toString() pour les spécificateurs de champs 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 de la date et/ou de l'heure représentées. Les textes qui les représentent peuvent dépendre de l'adresse locale spécifiée. Les autres caractères de format sont copiés mot pour mot dans la chaîne renvoyée.
Voir aussi monthName(), weekDayName(), QDate::toString() et QTime::toString().
int QCalendar::dayOfWeek(QDate date) const
Renvoie le numéro du jour de la semaine pour la date donnée date.
Renvoie zéro si le calendrier n'est pas en mesure de représenter la date indiquée. Retourne 1 pour le lundi et 7 pour le dimanche. Les calendriers comportant des jours intercallaires 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 de l'année month de l'année 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 (son défaut, s'il n'est pas transmis), la plus grande longueur du mois dans n'importe quelle année est retournée.
Voir aussi maximumDaysInMonth() et minimumDaysInMonth().
int QCalendar::daysInYear(int year) const
Renvoie le nombre de jours dans la période donnée year.
Le traitement de Unspecified en tant que year n'est pas défini.
bool QCalendar::hasYearZero() const
Renvoie true si ce calendrier a 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 avant sa première année ; un tel calendrier n'a pas d'année zéro et n'est pas proleptique.
Un calendrier qui représente les années avant la première peut numéroter ces années simplement en suivant la méthode habituelle de comptage des nombres entiers, de sorte que l'année avant la première est l'année zéro, précédée d'années négatives ; un tel calendrier est proleptique et a une année zéro. Un calendrier peut également avoir 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 précédant son année zéro. Un tel calendrier aurait une année zéro sans être proleptique.
Certains calendriers, cependant, représentent les années antérieures à la première par une numérotation alternative ; par exemple, la première année du calendrier grégorien proleptique est 1 EC et l'année qui la précède est 1 EC, précédée de 2 EC et ainsi de suite. Dans ce cas, nous utilisons des nombres d'années négatifs pour cette numérotation alternative, l'année -1 étant l'année précédant l'année 1, l'année -2 étant l'année précédant l'année -1 et ainsi de suite. Un tel calendrier est proleptique mais n'a pas d'année zéro.
Voir également isProleptic().
bool QCalendar::isDateValid(int year, int month, int day) const
Renvoie true précisément si les données year, month, et day spécifient une date valide dans ce calendrier.
En général, cela signifie 1 <= mois <= monthsInYear(année) et 1 <= jour <= daysInMonth(mois, année). Cependant, les calendriers avec des jours ou des mois intercallaires peuvent compliquer les choses.
bool QCalendar::isGregorian() const
Renvoie true si cet objet calendrier est l'objet calendrier grégorien utilisé comme calendrier 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 l'année ne compte pas un nombre entier de jours, certaines années sont plus longues que d'autres. La différence peut être d'un mois entier ou d'un seul jour ; les détails varient d'un calendrier à l'autre.
Voir aussi isDateValid().
bool QCalendar::isLunar() const
Renvoie true si ce calendrier est un calendrier lunaire.
Un calendrier lunaire est un calendrier basé principalement sur les phases de la lune.
bool QCalendar::isLuniSolar() const
Renvoie true si ce calendrier est luni-solaire.
Un calendrier luni-solaire exprime les phases de la lune mais s'adapte 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 est capable de décrire des années arbitrairement longues avant la première. Ces années sont représentées par des nombres négatifs et éventuellement par une année zéro.
Voir aussi hasYearZero().
bool QCalendar::isSolar() const
Renvoie true si ce calendrier est solaire.
Un calendrier solaire est basé principalement sur la position variable du soleil dans le ciel, par rapport aux étoiles fixes.
bool QCalendar::isValid() const
Retourne true s'il s'agit d'un objet calendrier valide.
La construction d'un calendrier avec un nom de calendrier non reconnu peut donner lieu à un objet non valide. Utilisez cette méthode pour vérifier la validité de l'objet après avoir créé un calendrier par son nom.
[since 6.7] QDate QCalendar::matchCenturyToWeekday(const QCalendar::YearMonthDay &parts, int dow) const
Ajuste le siècle d'une date pour qu'il corresponde à un jour de la semaine donné.
À utiliser lorsque le jour de la semaine, le jour du mois, le mois et les deux derniers chiffres de l'année d'une date sont donnés. Renvoie une instance de QDate dont le dayOfWeek() est dow et qui correspond au parts pour le mois et le jour du mois. year L'instance QDate() renvoyée doit différer de parts.year d'un multiple de 100, en préférant les petits multiples aux plus grands et les multiples positifs à leur négation.
Si aucune date ne correspond à ces conditions, une adresse QDate invalide est renvoyée : le jour de la semaine est incompatible avec les autres données fournies. Ce problème se pose, par exemple, avec le calendrier grégorien, dont le cycle de 400 ans correspond à un nombre entier de semaines, de sorte qu'un mois donné et le jour de ce mois ne tombent jamais, dans les années dont les deux derniers chiffres sont donnés, que sur quatre jours de la semaine. (Dans le cas particulier du 29 février au tournant d'un siècle, lorsqu'il s'agit d'une année bissextile, un seul jour de la semaine est possible : le mardi : Mardi).
Cette fonction a été introduite dans Qt 6.7.
int QCalendar::maximumDaysInMonth() const
Renvoie le nombre de jours du mois le plus long du calendrier, quelle que soit l'année.
Voir aussi daysInMonth() et minimumDaysInMonth().
int QCalendar::maximumMonthsInYear() const
Renvoie le plus grand nombre de mois que peut contenir une année.
Voir aussi 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 aussi daysInMonth() et maximumDaysInMonth().
QString QCalendar::monthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const
Renvoie un nom localisé approprié pour un mois.
Le mois est indiqué par un nombre, month = 1 signifiant le premier mois de l'année et les mois suivants étant numérotés en conséquence. Renvoie une chaîne vide si le numéro month n'est pas reconnu.
L'adresse year peut être Unspecified, auquel cas il convient d'utiliser la correspondance entre les nombres et les noms des mois d'une année normale. Certains calendriers ont des mois bissextiles qui ne se situent pas toujours à la fin de l'année ; la correspondance entre les numéros de mois et les noms peut alors dépendre de l'emplacement d'un mois bissextile. L'année doit donc normalement être spécifiée, si elle est connue.
Le nom est renvoyé sous la forme qui serait normalement utilisée pour une date complète, dans le format spécifié locale; le format format détermine dans quelle mesure il doit être exprimé (c'est-à-dire dans quelle mesure il doit être abrégé).
Voir également standaloneMonthName(), maximumMonthsInYear() et dateTimeToString().
int QCalendar::monthsInYear(int year) const
Renvoie le nombre de mois dans la période donnée year.
Si year est Unspecified, renvoie le nombre maximum 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 d'autres noms. Un calendrier instancié par son nom peut utiliser un tel alias, auquel cas son name() ne doit pas nécessairement correspondre à l'alias par lequel il a été instancié.
QCalendar::YearMonthDay QCalendar::partsFromDate(QDate date) const
Convertit un QDate en année, mois et jour du mois.
La valeur de isValid() de la structure renvoyée est fausse si le calendrier ne peut pas représenter le date donné. Dans le cas contraire, ses membres année, mois et jour 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 un nom autonome convenablement localisé pour un mois.
Le mois est indiqué par un numéro, month = 1 signifiant le premier mois de l'année et les mois suivants étant numérotés en conséquence. Renvoie une chaîne vide si le numéro month n'est pas reconnu.
L'adresse year peut être Unspecified, auquel cas il convient d'utiliser la correspondance entre les nombres et les noms des mois d'une année normale. Certains calendriers ont des mois bissextiles qui ne se situent pas toujours à la fin de l'année ; la correspondance entre les numéros de mois et les noms peut alors dépendre de l'emplacement d'un mois bissextile. L'année doit donc normalement être spécifiée, si elle est connue.
Le nom est renvoyé sous la forme qui serait utilisée isolément dans le site locale spécifié ; le site 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 un nom autonome convenablement localisé pour 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 prévoir des numéros plus élevés pour d'autres jours (par exemple les jours intercallaires, qui ne font pas partie d'une semaine). Renvoie une chaîne vide si le numéro day n'est pas reconnu.
Le nom est renvoyé sous la forme qui serait utilisée isolément (par exemple en tant qu'en-tête de colonne dans un tableau de calendrier d'un mois avec des semaines successives comme lignes) dans le site locale spécifié ; le site format détermine la manière dont il doit être exprimé (c'est-à-dire dans quelle mesure il doit être abrégé).
Voir également weekDayName() et dayOfWeek().
QString QCalendar::weekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const
Renvoie un nom localisé approprié pour 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 prévoir des numéros plus élevés pour d'autres jours (par exemple, les jours intercallaires, qui ne font pas partie d'une semaine). Renvoie une chaîne vide si le numéro day n'est pas reconnu.
Le nom est renvoyé sous la forme qui serait normalement utilisée pour une date complète, dans le format spécifié locale; le format format détermine le degré d'expression (c'est-à-dire la mesure dans laquelle il est abrégé).
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.