Classe year_month_day
Representa um mês, um ano e um dia.
Sintaxe
class year_month_day; // C++20
Membros
Nome | Descrição |
---|---|
Construtores | Construir um year_month_day |
day |
Retorna o dia. |
month |
Retorna o mês. |
ok |
Verifique se os valores year e month 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 época system_clock para esse year_month_day como local_days . |
operator sys_days |
Obtenha a contagem de dias da época system_clock para esse year_month_day como sys_days . |
year |
Retorna o ano. |
Não membros
Nome | Descrição |
---|---|
from_stream |
Analise um year_month_day de um fluxo usando o formato especificado |
operator+ |
Adicione meses ou anos. |
operator- |
Subtraia meses ou anos. |
operator== |
Determine se dois valores year_month_day são iguais. |
operator<=> |
Compare dois valores year_month_day . Os operadores >, >=, <=, <, != são sintetizados pelo compilador. |
operator<< |
Gere 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 valor de day
.
dp
Um valor de sys_days
ou de local_days
.
m
Um valor de month
.
y
Um valor year
.
ymdl
Um valor de year_month_day_last
.
Comentários
1) O construtor padrão não inicializa o mês ou dia.
2) Constrói um year_month_day
com o ano, mês e dia especificados.
3) Constrói um year_month_day
com o ano, mês e dia especificados de ymdl
4) Constrói a year_month_day
com a mesma data que dp
.
5) Constrói um year_month_day
com a mesma data que dp
, mas como se construído por year_month_day(sys_days(dp.time_since_epoch()))
.
Para obter informações sobre a sintaxe do 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
Obtenha 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
Obtenha a contagem de dias da época system_clock
(01/01/1970) para esse year_month_day
como local_days
constexpr explicit operator local_days() const noexcept;
Valor retornado
Se ok()
, retorna uma contagem de dias como local_days{sys_days{*this}.time_since_epoch()}
operator sys_days
Obtenha a contagem de dias da época system_clock
(01/01/1970) para esse year_month_day
como sys_days
.
constexpr operator sys_days() const noexcept;
Valor retornado
Se ok()
, retorna um sys_days
contendo uma contagem de dias da época sys_days
(01/01/1970) para a data mantida neste year_month_day
. O valor será negativo se a data neste year_month_day
for anterior à época sys_days
.
Se o ano e o mês neste year_month_day
forem ok()
, retornará sys_days{year/month/1d} + (day-1d)
. Caso contrário, o valor retornado não será especificado.
Um sys_days
no intervalo [days{-12687428}
, days{11248737}
] pode ser convertido em um year_month_day
, ser convertido de volta, e ter o mesmo valor.
year
Obtenha o ano.
constexpr year year() const noexcept;
Valor retornado
O year
.
ok
Verifique se os valores de mês e ano armazenados nesse year_month_day
estão no 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 valores de dia, mês e ano de year_month_day
estiverem no intervalo válido. Caso contrário, false
.
operator+=
Adicione meses ou anos a esse 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 desse 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 para subtração.
dy
O número de anos para subtração.
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
Confira 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