# La classe IntlCalendar

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

## Introduction

## Synopsis de la classe

class IntlCalendar {
/* Constantes */
public const int FIELD_ERA;
public const int FIELD_YEAR;
public const int FIELD_MONTH;
public const int FIELD_WEEK_OF_YEAR;
public const int FIELD_WEEK_OF_MONTH;
public const int FIELD_DATE;
public const int FIELD_DAY_OF_YEAR;
public const int FIELD_DAY_OF_WEEK;
public const int FIELD_DAY_OF_WEEK_IN_MONTH;
public const int FIELD_AM_PM;
public const int FIELD_HOUR;
public const int FIELD_HOUR_OF_DAY;
public const int FIELD_MINUTE;
public const int FIELD_SECOND;
public const int FIELD_MILLISECOND;
public const int FIELD_ZONE_OFFSET;
public const int FIELD_DST_OFFSET;
public const int FIELD_YEAR_WOY;
public const int FIELD_DOW_LOCAL;
public const int FIELD_EXTENDED_YEAR;
public const int FIELD_JULIAN_DAY;
public const int FIELD_MILLISECONDS_IN_DAY;
public const int FIELD_IS_LEAP_MONTH;
public const int FIELD_FIELD_COUNT;
public const int FIELD_DAY_OF_MONTH;
public const int DOW_SUNDAY;
public const int DOW_MONDAY;
public const int DOW_TUESDAY;
public const int DOW_WEDNESDAY;
public const int DOW_THURSDAY;
public const int DOW_FRIDAY;
public const int DOW_SATURDAY;
public const int DOW_TYPE_WEEKDAY;
public const int DOW_TYPE_WEEKEND;
public const int DOW_TYPE_WEEKEND_OFFSET;
public const int DOW_TYPE_WEEKEND_CEASE;
public const int WALLTIME_FIRST;
public const int WALLTIME_LAST;
public const int WALLTIME_NEXT_VALID;
/* Méthodes */
private __construct()
public add(int `$field`, int `$value`): bool
public after(IntlCalendar `$other`): bool
public before(IntlCalendar `$other`): bool
public clear(?int `$field` = `null`): true
public static createInstance(IntlTimeZone|DateTimeZone|string|null `$timezone` = `null`, ?string `$locale` = `null`): ?IntlCalendar
public equals(IntlCalendar `$other`): bool
public fieldDifference(float `$timestamp`, int `$field`): int|false
public static fromDateTime(DateTime|string `$datetime`, ?string `$locale` = `null`): ?IntlCalendar
public get(int `$field`): int|false
public getActualMaximum(int `$field`): int|false
public getActualMinimum(int `$field`): int|false
public static getAvailableLocales(): array
public getDayOfWeekType(int `$dayOfWeek`): int|false
public getErrorCode(): int|false
public getErrorMessage(): string|false
public getFirstDayOfWeek(): int|false
public getGreatestMinimum(int `$field`): int|false
public static getKeywordValuesForLocale(string `$keyword`, string `$locale`, bool `$onlyCommon`): IntlIterator|false
public getLeastMaximum(int `$field`): int|false
public getLocale(int `$type`): string|false
public getMaximum(int `$field`): int|false
public getMinimalDaysInFirstWeek(): int|false
public getMinimum(int `$field`): int|false
public static getNow(): float
public getRepeatedWallTimeOption(): int
public getSkippedWallTimeOption(): int
public getTime(): float|false
public getTimeZone(): IntlTimeZone|false
public getType(): string
public getWeekendTransition(int `$dayOfWeek`): int|false
public inDaylightTime(): bool
public isEquivalentTo(IntlCalendar `$other`): bool
public isLenient(): bool
public isSet(int `$field`): bool
public isWeekend(?float `$timestamp` = `null`): bool
public roll(int `$field`, int|bool `$value`): bool
public set(int `$field`, int `$value`): true
public set(
int `$year`,
int `$month`,
int `$dayOfMonth` = NULL,
int `$hour` = NULL,
int `$minute` = NULL,
int `$second` = NULL
): true
public setDate(int `$year`, int `$month`, int `$dayOfMonth`): void
public setDateTime(
int `$year`,
int `$month`,
int `$dayOfMonth`,
int `$hour`,
int `$minute`,
?int `$second` = `null`
): void
public setFirstDayOfWeek(int `$dayOfWeek`): true
public setLenient(bool `$lenient`): true
public setMinimalDaysInFirstWeek(int `$days`): true
public setRepeatedWallTimeOption(int `$option`): true
public setSkippedWallTimeOption(int `$option`): true
public setTime(float `$timestamp`): bool
public setTimeZone(IntlTimeZone|DateTimeZone|string|null `$timezone`): bool
public toDateTime(): DateTime|false
}

## Constantes pré-définies

`IntlCalendar::FIELD_ERA` int

  Le champ de calendrier numériquement représentant une ère, par exemple `1` pour AD et `0` pour BC dans les calendriers grégorien/julien et `235` pour l'ère Heisei (平成) dans le calendrier japonais. Tous les calendriers n'ont pas plus d'une ère.

`IntlCalendar::FIELD_YEAR` int

  Le champ de calendrier pour l'année. Ceci n'est pas unique à travers les ères. Si le type de calendrier a plus d'une ère, généralement la valeur minimale pour ce champ sera `1`.

`IntlCalendar::FIELD_MONTH` int

  Le champ de calendrier pour le mois. La séquence des mois commence à zéro, donc janvier (ici utilisé pour signifier le premier mois du calendrier; cela peut être appelé un autre nom, tel que Muharram dans le calendrier islamique) est représenté par `0`, février par `1`, …, décembre par `11` et, pour les calendriers qui l'ont, le 13ème ou mois bis par `12`.

`IntlCalendar::FIELD_WEEK_OF_YEAR` int

  Le champ de calendrier pour le numéro de la semaine de l'année. Ceci dépend du jour de la semaine qui est considéré comme le début de la semaine et du nombre minimal de jours dans une semaine.

`IntlCalendar::FIELD_WEEK_OF_MONTH` int

  Le champ de calendrier pour le numéro de la semaine du mois. Ceci dépend du jour de la semaine qui est considéré comme le début de la semaine et du nombre minimal de jours dans une semaine.

`IntlCalendar::FIELD_DATE` int

  Le champ de calendrier pour le jour du mois. Identique à `IntlCalendar::FIELD_DAY_OF_MONTH`, qui a un nom plus clair.

`IntlCalendar::FIELD_DAY_OF_YEAR` int

  Le champ de calendrier pour le jour de l'année. Pour le calendrier grégorien, commence par `1` et se termine par `365` ou `366`.

`IntlCalendar::FIELD_DAY_OF_WEEK` int

  Le champ de calendrier pour le jour de la semaine. Ses valeurs commencent par `1` (dimanche, voir `IntlCalendar::DOW_SUNDAY` et les constantes suivantes) et la dernière valeur valide est `7` (samedi).

`IntlCalendar::FIELD_DAY_OF_WEEK_IN_MONTH` int

  Donner un jour de la semaine (dimanche, lundi, …), ce champ de calendrier attribue un ordinal à un tel jour de la semaine dans un mois spécifique. Ainsi, si la valeur de ce champ est `1` et la valeur du jour de la semaine est `2` (lundi), alors le jour défini du mois est le premier lundi du mois; la valeur maximale est `5`.

  En plus de cela, la valeur `0` et les valeurs négatives sont également autorisées. La valeur `0` englobe les sept jours qui se produisent immédiatement avant les sept premiers jours d'un mois (qui ont donc un « jour de la semaine dans le mois » avec la valeur `1`). Les valeurs négatives commencent à compter à partir de la fin du mois - `-1` pointe vers la dernière occurrence d'un jour de la semaine dans un mois, `-2` vers l'avant-dernier, et ainsi de suite.

  A la différence de `IntlCalendar::FIELD_WEEK_OF_MONTH` et `IntlCalendar::FIELD_WEEK_OF_YEAR`, cette valeur ne dépend pas de IntlCalendar::getFirstDayOfWeek() ou de IntlCalendar::getMinimalDaysInFirstWeek(). Le premier lundi est le premier lundi, même s'il se trouve dans une semaine qui appartient au mois précédent.

`IntlCalendar::FIELD_AM_PM` int

  Le champ de calendrier indiquant si un temps est avant midi (valeur `0`, AM) ou après (`1`, PM). Minuit est AM, midi est PM.

`IntlCalendar::FIELD_HOUR` int

  Le champ de calendrier pour l'heure, sans spécifier si c'est le matin ou l'après-midi. Les valeurs valides sont de `0` à `11`.

`IntlCalendar::FIELD_HOUR_OF_DAY` int

  Le champ de calendrier pour l'heure complète (24h) du jour. Les valeurs valides sont de `0` à `23`.

`IntlCalendar::FIELD_MINUTE` int

  Le champ de calendrier pour la composante minutes de l'heure.

`IntlCalendar::FIELD_SECOND` int

  Le champ de calendrier pour la composante secondes de l'heure.

`IntlCalendar::FIELD_MILLISECOND` int

  Le champ de calendrier pour la composante millisecondes de l'heure.

`IntlCalendar::FIELD_ZONE_OFFSET` int

  Le champ de calendrier indiquant le décalage brut du fuseau horaire, en millisecondes. Le décalage brut est le décalage du fuseau horaire, excluant tout décalage dû à l'heure d'été.

`IntlCalendar::FIELD_DST_OFFSET` int

  Le champ de calendrier pour le décalage de l'heure d'été du fuseau horaire du calendrier, en millisecondes, si actif pour le fuseau horaire

`IntlCalendar::FIELD_YEAR_WOY` int

  Le champ de calendrier représentant l'année pour les besoins de la semaine de l'année.

`IntlCalendar::FIELD_DOW_LOCAL` int

  Le champ de calendrier pour le jour localisé de la semaine. Ceci est une valeur entre `1` et `7`, `1` étant utilisé pour le jour de la semaine qui correspond à la valeur retournée par IntlCalendar::getFirstDayOfWeek().

`IntlCalendar::FIELD_EXTENDED_YEAR` int

  Le champ de calendrier pour une représentation numérique de l'année qui est continue à travers les ères. Pour le calendrier grégorien, la valeur de ce champ correspond à celle de `IntlCalendar::FIELD_YEAR` pour les années AD; une année BC `y` est représentée par `-y + 1`.

`IntlCalendar::FIELD_JULIAN_DAY` int

  Le champ de calendrier pour un nombre de jours julien modifié. Il est différent d'un nombre de jours julien conventionnel en ce que ses transitions se produisent à minuit du fuseau horaire local plutôt qu'à midi UTC. Il identifie de manière unique une date.

`IntlCalendar::FIELD_MILLISECONDS_IN_DAY` int

  Le champ de calendrier englobant les informations dans `IntlCalendar::FIELD_HOUR_OF_DAY`, `IntlCalendar::FIELD_MINUTE`, `IntlCalendar::FIELD_SECOND` et `IntlCalendar::FIELD_MILLISECOND`. La plage est de `0` to `24 * 3600 * 1000 - 1`. Ce n'est pas le nombre de millisecondes écoulées dans la journée, car lors des transitions DST il aura des discontinuités analogues à celles de l'heure locale.

`IntlCalendar::FIELD_IS_LEAP_MONTH` int

  Le champ de calendrier dont la valeur est `1` pour indiquer un mois bisextile et `0` sinon.

`IntlCalendar::FIELD_FIELD_COUNT` int

  Le nombre total de champs.

`IntlCalendar::FIELD_DAY_OF_MONTH` int

  Un alias de `IntlCalendar::FIELD_DATE`.

`IntlCalendar::DOW_SUNDAY` int

  Dimanche.

`IntlCalendar::DOW_MONDAY` int

  Lundi.

`IntlCalendar::DOW_TUESDAY` int

  Mardi.

`IntlCalendar::DOW_WEDNESDAY` int

  Mercredi.

`IntlCalendar::DOW_THURSDAY` int

  Jeudi.

`IntlCalendar::DOW_FRIDAY` int

  Vendredi.

`IntlCalendar::DOW_SATURDAY` int

  Samedi.

`IntlCalendar::DOW_TYPE_WEEKDAY` int

  La sortie de IntlCalendar::getDayOfWeekType() indiquant qu'un jour de la semaine appartient à la semaine.

`IntlCalendar::DOW_TYPE_WEEKEND` int

  La sortie de IntlCalendar::getDayOfWeekType() indiquant qu'un jour de la semaine appartient au week-end.

`IntlCalendar::DOW_TYPE_WEEKEND_OFFSET` int

  La sortie de IntlCalendar::getDayOfWeekType() indiquant que le week-end commence pendant le jour de la semaine donné.

`IntlCalendar::DOW_TYPE_WEEKEND_CEASE` int

  La sortie de IntlCalendar::getDayOfWeekType() indiquant que le week-end se termine pendant le jour de la semaine donné.

`IntlCalendar::WALLTIME_FIRST` int

  La sortie de IntlCalendar::getSkippedWallTimeOption() indiquant que les heures murales dans la plage sautée devraient se référer au même instant que les heures murales avec une heure de moins et de IntlCalendar::getRepeatedWallTimeOption() indiquant que les heures murales dans la plage répétée devraient se référer à l'instant de la première occurrence de cette heure murale.

`IntlCalendar::WALLTIME_LAST` int

  La sortie de IntlCalendar::getSkippedWallTimeOption() indiquant que les heures murales dans la plage sautée devraient se référer au même instant que les heures murales avec une heure de plus et de IntlCalendar::getRepeatedWallTimeOption() indiquant que les heures murales dans la plage répétée devraient se référer à l'instant de la deuxième occurrence de cette heure murale.

`IntlCalendar::WALLTIME_NEXT_VALID` int

  La sortie de IntlCalendar::getRepeatedWallTimeOption() indiquant que les heures murales dans la plage répétée devraient se référer à l'instant lorsque la transition de l'heure d'été arrive (débute).

## Historique

Version | Description
--- | ---
8.4.0 | Les constantes de classe sont désormais typées.

## Sommaire

- IntlCalendar::add — Ajoute une durée (signée) à un champ
- IntlCalendar::after — Vérifie si l'objet temps courant est dans le futur par rapport à l'objet temps passé
- IntlCalendar::before — Vérifie si l'objet temps est dans le passé par rapport à l'objet fourni
- IntlCalendar::clear — Vide un ou tous les champs
- IntlCalendar::__construct — Constructeur privé pour la désactivation de l'instanciation
- IntlCalendar::createInstance — Crée un nouvel objet IntlCalendar
- IntlCalendar::equals — Vérifie si deux objets IntlCalendar sont égaux
- IntlCalendar::fieldDifference — Calcule la différence entre le temps donné et le temps de l'objet
- IntlCalendar::fromDateTime — Créer un IntlCalendar depuis un objet DateTime ou une chaîne de caractères
- IntlCalendar::get — Récupère la valeur d'une propriété
- IntlCalendar::getActualMaximum — La valeur maximale pour un champ, en considérant le temps actuel de l'objet
- IntlCalendar::getActualMinimum — La valeur minimal pour un champ, en considérant le temps actuel de l'objet
- IntlCalendar::getAvailableLocales — Renvoie un tableau des locales pour lesquelles il y a des données
- IntlCalendar::getDayOfWeekType — Indique si un jour est un jour de la semaine, un week-end ou un jour de transition entre les deux
- IntlCalendar::getErrorCode — Renvoie le dernier code d'erreur sur l'objet
- IntlCalendar::getErrorMessage — Renvoie le dernier message d'erreur sur l'objet
- IntlCalendar::getFirstDayOfWeek — Renvoie le premier jour de la semaine pour la locale du calendrier
- IntlCalendar::getGreatestMinimum — Renvoie la plus grande valeur minimale locale pour un champ
- IntlCalendar::getKeywordValuesForLocale — Renvoie l'ensemble des valeurs de mots-clés de locale
- IntlCalendar::getLeastMaximum — Obtient le plus petit maximum local pour un champ
- IntlCalendar::getLocale — Renvoie la locale associée à l'objet
- IntlCalendar::getMaximum — Obtient la valeur maximale globale pour un champ
- IntlCalendar::getMinimalDaysInFirstWeek — Obtient le nombre minimal de jours que la première semaine dʼune année ou dʼun mois peut avoir
- IntlCalendar::getMinimum — Obtient la valeur minimale globale pour un champ
- IntlCalendar::getNow — Récupère le nombre représentant la date courante
- IntlCalendar::getRepeatedWallTimeOption — Obtient le comportement pour la gestion des heures murales répétées
- IntlCalendar::getSkippedWallTimeOption — Obtient le comportement pour la gestion des heures murales sautées
- IntlCalendar::getTime — Obtient le temps actuellement représenté par l'objet
- IntlCalendar::getTimeZone — Récupère le fuseau horaire de l'objet
- IntlCalendar::getType — Récupère le type de calendrier
- IntlCalendar::getWeekendTransition — Obtient l'heure du jour à laquelle le week-end commence ou se termine
- IntlCalendar::inDaylightTime — Indique si l'objet est en heure d'été
- IntlCalendar::isEquivalentTo — Indique si un autre calendrier est équivalent, mais pour un autre moment
- IntlCalendar::isLenient — Indique si l'interprétation de la date/heure est en mode tolérant
- IntlCalendar::isSet — Indique si un champ est défini
- IntlCalendar::isWeekend — Indique si une date/heure est un week-end
- IntlCalendar::roll — Ajoute une valeur à un champ sans la reporter sur les champs plus significatifs
- IntlCalendar::set — Définit un champ de temps ou plusieurs champs communs en une seule fois
- IntlCalendar::setDate — Définit un champ de date
- IntlCalendar::setDateTime — Définit un champ de date et d'heure
- IntlCalendar::setFirstDayOfWeek — Défini le jour de début de la semaine
- IntlCalendar::setLenient — Définit si l'interprétation de la date/heure est tolérante
- IntlCalendar::setMinimalDaysInFirstWeek — Définit le nombre minimal de jours que la première semaine d'une année ou d'un mois peut avoir
- IntlCalendar::setRepeatedWallTimeOption — Définit le comportement pour la gestion des heures murales répétées lors des transitions de décalage de fuseau horaire négatif
- IntlCalendar::setSkippedWallTimeOption — Définit le comportement pour la gestion des heures murales sautées lors des transitions de décalage de fuseau horaire positif
- IntlCalendar::setTime — Défini le temps du calendrier en milliseconde depuis l'époque
- IntlCalendar::setTimeZone — Défini le fuseau horaire utilisé par ce calendrier
- IntlCalendar::toDateTime — Converti un objet IntlCalendar en un objet DateTime