# A classe IntlCalendar

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

## Introdução

## Resumo da 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étodos */
private function __construct()
public function add(int `$field`, int `$value`): bool
public function after(IntlCalendar `$other`): bool
public function before(IntlCalendar `$other`): bool
public function clear(?int `$field` = `null`): true
public static function createInstance(IntlTimeZone|DateTimeZone|string|null `$timezone` = `null`, ?string `$locale` = `null`): ?IntlCalendar
public function equals(IntlCalendar `$other`): bool
public function fieldDifference(float `$timestamp`, int `$field`): int|false
public static function fromDateTime(DateTime|string `$datetime`, ?string `$locale` = `null`): ?IntlCalendar
public function get(int `$field`): int|false
public function getActualMaximum(int `$field`): int|false
public function getActualMinimum(int `$field`): int|false
public static function getAvailableLocales(): array
public function getDayOfWeekType(int `$dayOfWeek`): int|false
public function getErrorCode(): int|false
public function getErrorMessage(): string|false
public function getFirstDayOfWeek(): int|false
public function getGreatestMinimum(int `$field`): int|false
public static function getKeywordValuesForLocale(string `$keyword`, string `$locale`, bool `$onlyCommon`): IntlIterator|false
public function getLeastMaximum(int `$field`): int|false
public function getLocale(int `$type`): string|false
public function getMaximum(int `$field`): int|false
public function getMinimalDaysInFirstWeek(): int|false
public function getMinimum(int `$field`): int|false
public static function getNow(): float
public function getRepeatedWallTimeOption(): int
public function getSkippedWallTimeOption(): int
public function getTime(): float|false
public function getTimeZone(): IntlTimeZone|false
public function getType(): string
public function getWeekendTransition(int `$dayOfWeek`): int|false
public function inDaylightTime(): bool
public function isEquivalentTo(IntlCalendar `$other`): bool
public function isLenient(): bool
public function isSet(int `$field`): bool
public function isWeekend(?float `$timestamp` = `null`): bool
public function roll(int `$field`, int|bool `$value`): bool
public function set(int `$field`, int `$value`): true
public function set(
int `$year`,
int `$month`,
int `$dayOfMonth` = NULL,
int `$hour` = NULL,
int `$minute` = NULL,
int `$second` = NULL
): true
public function setDate(int `$year`, int `$month`, int `$dayOfMonth`): void
public function setDateTime(
int `$year`,
int `$month`,
int `$dayOfMonth`,
int `$hour`,
int `$minute`,
?int `$second` = `null`
): void
public function setFirstDayOfWeek(int `$dayOfWeek`): true
public function setLenient(bool `$lenient`): true
public function setMinimalDaysInFirstWeek(int `$days`): true
public function setRepeatedWallTimeOption(int `$option`): true
public function setSkippedWallTimeOption(int `$option`): true
public function setTime(float `$timestamp`): bool
public function setTimeZone(IntlTimeZone|DateTimeZone|string|null `$timezone`): bool
public function toDateTime(): DateTime|false
}

## Constantes predefinidas

`IntlCalendar::FIELD_ERA` int

  Campo de calendário que representa uma era numericamente, por exemplo `1` para DC e `0` para AC nos calendários gregorianos/julianos e `235` para a era Heisei (平成) no calendário japonês. Nem todos os calendários têm mais de uma era.

`IntlCalendar::FIELD_YEAR` int

  Campo de calendário para o ano. Isto não é único através das eras. Se o tipo do calendário tem mais que uma era, geralmente o valor mínimo para este campo será `1`.

`IntlCalendar::FIELD_MONTH` int

  Campo de calendário para o mês. A sequência de meses é baseada em zero, portanto janeiro (aqui usado com o significado do primeiro mês do calendário; mas pode ser chamado outro nome, como Moarrão no calendário islâmico) é representado por `0`, fevereiro por `1`, …, dezembro por `11` e, para calendários que o têm, o 13º ou mês adicional por `12`.

`IntlCalendar::FIELD_WEEK_OF_YEAR` int

  Campo de calendário para o número da semana no ano. Isto depende de que dia da semana é definido para começar a semana e o número mínimo de dias em uma semana.

`IntlCalendar::FIELD_WEEK_OF_MONTH` int

  Campo de calendário para o número da semana no mês. Isto depende de que dia da semana é definido para começar a semana e o número mínimo de dias em uma semana.

`IntlCalendar::FIELD_DATE` int

  Campo de calendário para o dia do mês. O mesmo que `IntlCalendar::FIELD_DAY_OF_MONTH`, que tem um nome mais claro.

`IntlCalendar::FIELD_DAY_OF_YEAR` int

  Campo de calendário para o dia no ano. Para o calendário gregoriano, começa com `1` e termina com `365` ou `366`.

`IntlCalendar::FIELD_DAY_OF_WEEK` int

  Campo de calendário para o dia da semana. Seus valores começam com `1` (domingo, consulte `IntlCalendar::DOW_SUNDAY` e constantes subsequentes) e o último valor válido é 7 (sábado).

`IntlCalendar::FIELD_DAY_OF_WEEK_IN_MONTH` int

  Dado um dia da semana (domingo, segunda-feira, …), este campo de calendário atribui um ordinal ao dia da semana em um mês específico. Portanto, se o valor deste campo for `1` e o valor do dia da semana for `2` (segunda-feira), o dia do mês será a 1ª segunda-feira do mês; o valor máximo é `5`.

  Adicionalmente, o valor `0` e números negativos também são permitidos. O valor `0` abrange os sete dias que ocorrem imediatamente antes dos primeiros sete dias de um mês (que por sua vez têm o ‘dia da semana no mês’ com valor `1`). Valores negativos começam a contagem do final do mês – `-1` aponta para a última ocorrência de um dia da semana em um mês, `-2` para a penúltima, e assim por diante.

  Diferentemente de `IntlCalendar::FIELD_WEEK_OF_MONTH` e `IntlCalendar::FIELD_WEEK_OF_YEAR`, este valor não depende de IntlCalendar::getFirstDayOfWeek() ou de IntlCalendar::getMinimalDaysInFirstWeek(). A primeira segunda-feira é a primeira segunda-feira, mesmo se ela ocorrer em uma semana que pertença ao mês anterior.

`IntlCalendar::FIELD_AM_PM` int

  Campo de calendário que indica se um horário é antes de meio-dia (valor `0`, a.m.) ou depois (`1`). Meia-noite é a.m., meio-dia é p.m..

`IntlCalendar::FIELD_HOUR` int

  Campo de calendário para a hora, sem especificar se é antes ou depois do meio-dia. Valores válidos são `0` a `11`.

`IntlCalendar::FIELD_HOUR_OF_DAY` int

  Campo de calendário para as horas integrais do dia (24h). Valores válidos são `0` a `23`.

`IntlCalendar::FIELD_MINUTE` int

  Campo de calendário para o componente de minutos do horário.

`IntlCalendar::FIELD_SECOND` int

  Campo de calendário para o componente de segundos do horário.

`IntlCalendar::FIELD_MILLISECOND` int

  Campo de calendário para o componente de milissegundos do horário.

`IntlCalendar::FIELD_ZONE_OFFSET` int

  Campo de calendário que indica o deslocamento puro do fuso horário, em milissegundos. O deslocamento puro é o deslocamento do fuso horário, excluindo qualquer deslocamento devido a horário de verão.

`IntlCalendar::FIELD_DST_OFFSET` int

  Campo de calendário para o deslocamento de horário de verão do fuso horário do calendário, em milissegundos, se ativo para o horário do calendário.

`IntlCalendar::FIELD_YEAR_WOY` int

  Campo de calendário que represente o ano para propósito de semana do ano

`IntlCalendar::FIELD_DOW_LOCAL` int

  Campo de calendário para o dia da semana da localidade. Este é um valor entre `1` e `7`, `1` é usado para o dia da semana que corresponde ao valor retornado por IntlCalendar::getFirstDayOfWeek().

`IntlCalendar::FIELD_EXTENDED_YEAR` int

  Campo de calendário para uma representação numérica do ano que é contínua através das eras. Para o calendário gregoriano, o valor deste campo corresponde ao de `IntlCalendar::FIELD_YEAR` para anos DC; um ano AC `y` é representando por `-y + 1`.

`IntlCalendar::FIELD_JULIAN_DAY` int

  Campo de calendário para um número de dia juliano modificado. É diferente de um número de dia juliano convencional pois sua transição ocorre à meia-noite do fuso horário local ao invés da meia-noite UTC. Identifica unicamente uma data.

`IntlCalendar::FIELD_MILLISECONDS_IN_DAY` int

  Campo de calendário que abrange a informação em `IntlCalendar::FIELD_HOUR_OF_DAY`, `IntlCalendar::FIELD_MINUTE`, `IntlCalendar::FIELD_SECOND` e `IntlCalendar::FIELD_MILLISECOND`. O intervalo é de `0` a `24 * 3600 * 1000 - 1`. Não é a quantidade de milissegundos decorridos no dia pois em transições de horário de verão haverá descontinuidades análogas àquelas do horário do relógio de parede.

`IntlCalendar::FIELD_IS_LEAP_MONTH` int

  Campo de calendário cujo valor é `1` para indicar um mês adicional e `0` caso contrário.

`IntlCalendar::FIELD_FIELD_COUNT` int

  O número total de campos.

`IntlCalendar::FIELD_DAY_OF_MONTH` int

  Apelido para `IntlCalendar::FIELD_DATE`.

`IntlCalendar::DOW_SUNDAY` int

  Domingo.

`IntlCalendar::DOW_MONDAY` int

  Segunda-feira.

`IntlCalendar::DOW_TUESDAY` int

  Terça-feira.

`IntlCalendar::DOW_WEDNESDAY` int

  Quarta-feira.

`IntlCalendar::DOW_THURSDAY` int

  Quinta-feira.

`IntlCalendar::DOW_FRIDAY` int

  Sexta-feira.

`IntlCalendar::DOW_SATURDAY` int

  Sábado.

`IntlCalendar::DOW_TYPE_WEEKDAY` int

  Saída de IntlCalendar::getDayOfWeekType() que indica se o dia é um dia da semana (e não do final de semana).

`IntlCalendar::DOW_TYPE_WEEKEND` int

  Saída de IntlCalendar::getDayOfWeekType() que indica se o dia pertence ao final de semana.

`IntlCalendar::DOW_TYPE_WEEKEND_OFFSET` int

  Saída de IntlCalendar::getDayOfWeekType() que indica que o final de semana começa no dia da semana informado.

`IntlCalendar::DOW_TYPE_WEEKEND_CEASE` int

  Saída de IntlCalendar::getDayOfWeekType() que indica que o final de semana termina no dia da semana informado.

`IntlCalendar::WALLTIME_FIRST` int

  Saída de IntlCalendar::getSkippedWallTimeOption() que indica que o horário de relógio na faixa pulada deve se referir ao mesmo instante que o relógio com uma hora a menos; e a saída de IntlCalendar::getRepeatedWallTimeOption() que indica que o horário do relógio na faixa repetida deve se referir ao instante da primeira ocorrência do horário em questão.

`IntlCalendar::WALLTIME_LAST` int

  Saída de IntlCalendar::getSkippedWallTimeOption() que indica que o horário de relógio na faixa pulada deve se referir ao mesmo instante que o relógio com uma hora a mais; e a saída de IntlCalendar::getRepeatedWallTimeOption() que indica que o horário do relógio na faixa repetida deve se referir ao instante da segunda ocorrência do horário em questão.

`IntlCalendar::WALLTIME_NEXT_VALID` int

  Saída de IntlCalendar::getSkippedWallTimeOption() que indica que o horário de relógio na faixa pulada deve se referir ao intante em que a transição de horário de verão ocorre (inicia).

## Registro de Alterações

Versão | Descrição
--- | ---
8.4.0 | As constantes de classe agora são tipadas.

## Índice

- IntlCalendar::add — Adiciona uma quantidade de tempo (com sinal) a um campo
- IntlCalendar::after — Informa se o instante de tempo deste objeto é posterior ao instante do objeto passado
- IntlCalendar::before — Informa se o instante de tempo deste objeto é anterior ao instante do objeto passado
- IntlCalendar::clear — Limpa um campo ou todos os campos
- IntlCalendar::__construct — Construtor privado para não permitir instanciação
- IntlCalendar::createInstance — Cria um novo IntlCalendar
- IntlCalendar::equals — Compara horários de dois objetos IntlCalendar para igualidade
- IntlCalendar::fieldDifference — Calcula a diferença entre o horário fornecido e o horário deste objeto
- IntlCalendar::fromDateTime — Cria um IntlCalendar a partir de um objeto DateTime ou uma string
- IntlCalendar::get — Obtém o valor de um campo
- IntlCalendar::getActualMaximum — O valor máximo para um campo, considerando o horário atual do objeto
- IntlCalendar::getActualMinimum — O valor mínimo para um campo, considerando o horário atual do objeto
- IntlCalendar::getAvailableLocales — Obtém um array de localidades para as quais existem dados
- IntlCalendar::getDayOfWeekType — Informa se o dia é dia de semana, de final de semana ou de transição entre os dois
- IntlCalendar::getErrorCode — Obtém o último código de erro no objeto
- IntlCalendar::getErrorMessage — Obtém a última mensagem de erro no objeto
- IntlCalendar::getFirstDayOfWeek — Obtém o primeiro dia da semana para a localidade do calendário
- IntlCalendar::getGreatestMinimum — Obtém o maior valor mínimo local para um campo
- IntlCalendar::getKeywordValuesForLocale — Obtém um conjunto de valores de palavras-chaves de localidade
- IntlCalendar::getLeastMaximum — Obtém o menor máximo local para um campo
- IntlCalendar::getLocale — Obtém a localidade associada com o objeto
- IntlCalendar::getMaximum — Obtém o valor máximo global para um campo
- IntlCalendar::getMinimalDaysInFirstWeek — Obtém o número mínimo de dias que a primeira semana do ano ou do mês pode ter
- IntlCalendar::getMinimum — Obtém o mínimo global para um campo
- IntlCalendar::getNow — Obtém um número representando o horário atual
- IntlCalendar::getRepeatedWallTimeOption — Obtém o comportamento ao lidar com o horário de relógio repetido
- IntlCalendar::getSkippedWallTimeOption — Obtém o comportamento para o horário de relógio saltado
- IntlCalendar::getTime — Obtém o horário atualmente representado pelo objeto
- IntlCalendar::getTimeZone — Obtém o fuso horário do objeto
- IntlCalendar::getType — Obtém o tipo de calendário
- IntlCalendar::getWeekendTransition — Obtém o horário do dia no qual o final de semana inicia ou termina
- IntlCalendar::inDaylightTime — Informa se o horário do objeto está no horário de verão
- IntlCalendar::isEquivalentTo — Verifica se outro calendário é igual exceto pelo horário
- IntlCalendar::isLenient — Verifica se a interpretação de data/horário está no modo leniente
- IntlCalendar::isSet — Verifica se um campo está definido
- IntlCalendar::isWeekend — Verifica se uma data e um horário estão no final de semana
- IntlCalendar::roll — Adiciona valor ao campo sem transferir para campos mais significativos
- IntlCalendar::set — Define um campo de horário ou vários campos comuns de uma vez
- IntlCalendar::setDate — Define campos de data
- IntlCalendar::setDateTime — Define campos de data e horário
- IntlCalendar::setFirstDayOfWeek — Define o dia da semana no qual a semana inicia
- IntlCalendar::setLenient — Define se a interpretação de data/horário deve ser leniente
- IntlCalendar::setMinimalDaysInFirstWeek — Define o número mínimo de dias que a primeira semana do ano ou do mês pode ter
- IntlCalendar::setRepeatedWallTimeOption — Define o comportamento ao lidar com horário de relógio repetido ao sair do horário de verão
- IntlCalendar::setSkippedWallTimeOption — Define o comportamento ao lidar com horário de relógio saltado ao entrar no horário de verão
- IntlCalendar::setTime — Define o horário do calendário em milissegundos desde a época de referência
- IntlCalendar::setTimeZone — Define o fuso horário usado por este calendário
- IntlCalendar::toDateTime — Converte um objeto IntlCalendar para um DateTime

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open