Classe year_month_day

Representa um mês, um ano e um dia.

Sintaxe

class year_month_day; // C++ 20

Membros

Name Descrição
Construtores Construir um year_month_day
day Retorna o dia.
month Retorna o mês.
ok Verifique se os valores e month os year valores estão no intervalo válido.
operator+= Adicione o número especificado de meses ou anos.
operator-= Subtraia o número especificado de meses ou anos.
operator local_days Obtenha a contagem de dias da system_clock época para isso year_month_day como local_days.
operator sys_days Obtenha a contagem de dias da system_clock época para isso year_month_day como sys_days.
year Retorna o ano.

Não membros

Name Descrição
from_stream Analisar um de year_month_day um fluxo usando o formato especificado
operator+ Adicione meses ou anos.
operator- Subtrair meses ou anos.
operator== Determine se dois year_month_day valores são iguais.
operator<=> Compare dois year_month_day valores. Os >, >=, <=, <, != operadores são sintetizados pelo compilador.
operator<< Gerar um year_month_day para um fluxo.

Requisitos

Cabeçalho:<chrono> (desde C++ 20)

Namespace:std::chrono

Opção do compilador:/std:c++latest

Construtores

Construa um year_month_day.

1) year_month_day() = default;
2) constexpr year_month_day(const year& y, const month& m, day& d) noexcept;
3) constexpr year_month_day(const year_month_day_last& ymdl) noexcept;
4) constexpr year_month_day(const sys_days& dp) noexcept;
5) constexpr explicit year_month_day(const local_days& dp) noexcept;

Parâmetros

d Um day valor.

dp Um sys_days ou local_days valor.

m Um month valor.

y
Um valor year.

ymdl Um year_month_day_last valor.

Comentários

1) O construtor padrão não inicializa o mês ou o dia.
2) Constrói um year_month_daycom o ano, mês e dia especificados.
3) Constrói um year_month_daycom o ano, mês e dia especificados a partir de ymdl
4) Constrói um year_month_daycom a mesma data que dp.
5) Constrói um year_month_daycom a mesma data que dp , mas como se fosse construído por year_month_day(sys_days(dp.time_since_epoch())).

Para obter informações sobre a sintaxe C++ 20 usada para especificar datas, consulte operator/

Exemplo: Criar um year_month_day

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month_day ymd{ April / 4 / 1975 };
    std::cout << ymd;
    return 0;
}
1975-04-04

day

Pegue o dia.

constexpr day day() const noexcept;

Valor retornado

O valor day.

month

Obtenha o mês.

constexpr month month() const noexcept;

Valor retornado

O valor month.

operator local_days

Obter a contagem de dias da system_clock época (1/1/1/1970) para isso year_month_day como local_days

constexpr explicit operator local_days() const noexcept;

Valor retornado

If ok(), retorna uma contagem de dias como local_days{sys_days{*this}.time_since_epoch()}

operator sys_days

Obtenha a contagem de dias da system_clock época (1/1/1/1970) para isso year_month_day como sys_days.

constexpr operator sys_days() const noexcept;

Valor retornado

If ok(), retorna uma sys_days contagem de dias da sys_days época (1/1/1970) para a data mantida nesta year_month_day. O valor será negativo se a data neste year_month_day for anterior à sys_days época.

Se o ano e o mês estiverem year_month_dayok(), retornará sys_days{year/month/1d} + (day-1d). Caso contrário, o valor retornado não é especificado.

Um sys_days no intervalo [days{-12687428}, days{11248737}] pode ser convertido em um year_month_day e voltar e ter o mesmo valor.

year

Pegue o ano.

constexpr year year() const noexcept;

Valor retornado

O year.

ok

Verifique se o valor de ano e mês armazenados nesse year_month_day intervalo é válido. Garante que o dia esteja no intervalo [1d, (y/m/last).day()], contabilizando anos bissextos e o número diferente de dias em cada mês.

constexpr bool ok() const noexcept;

Valor retornado

true se os year_month_day valores de ano, mês e dia estiverem no intervalo válido. Caso contrário, false.

operator+=

Adicione meses ou anos a isso year_month_day.

1) constexpr year_month_day& operator+=(const months& dm) noexcept;
2) constexpr year_month_day& operator+=(const years& dy) noexcept;

Parâmetros

dm
O número de meses a serem adicionados.

dy
O número de anos a ser adicionado.

Valor retornado

*this, que reflete o resultado da adição.

Exemplo: operator+=

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month_day ymd{June / 1d / 2021y};

    std::cout << ymd << '\n';

    ymd += months{2};
    ymd += years{1};

    std::cout << ymd;
    
    return 0;
}
2021-06-01
2022-08-01

operator-=

Subtraia meses ou anos a partir disso year_month_day.

1) constexpr year_month_day& operator-=(const months& dm) noexcept;
2) constexpr year_month_day& operator-=(const years& dy) noexcept;

Parâmetros

dm
O número de meses a serem subtraídos.

dy
O número de anos a serem subtraídos.

Valor retornado

*this, que reflete o resultado da subtração.

Exemplo: operator-=

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month_day ymd{June / 1d / 2021y};

    std::cout << ymd << '\n';

    ymd -= months{2};
    ymd -= years{1};

    std::cout << ymd;
    
    return 0;
}
2021-06-01
2020-04-01

Consulte também

<chrono>
year
year_month
year_month_day_last
year_month_weekday
year_month_weekday_last
operator/
Referência de Arquivos de Cabeçalho