Classe year_month_day_last
Representa o último dia de um ano e mês específicos.
year_month_day_last
dá suporte à aritmética de mês e anos, mas não à aritmética de dias. Para fazer aritmética orientada a dias, converta year_month_day_last
em um sys_days
.
Sintaxe
class year_month_day_last; // C++20
Membros
Nome | Descrição |
---|---|
Construtores | Construir um year_month_day_last |
day |
Obtenha o último dia do mês/ano. |
month |
Obtenha o mês. |
month_day_last |
Obtenha o valor month_day_last armazenado neste year_month_day_last . |
ok |
Verifique se os valores year e month estão no intervalo válido. |
operator+= |
Adicione meses ou anos a esse year_month_day_last . |
operator-= |
Subtraia meses ou anos desse year_month_day_last . |
operator local_days |
Obtenha a contagem de dias da época sys_days para esse year_month_day_last como local_days . |
operator sys_days |
Obtenha a contagem de dias da época sys_days para esse year_month_day_last como sys_days . |
year |
Obtenha o ano. |
Não membros
Nome | Descrição |
---|---|
operator+ |
Adicione meses ou anos. |
operator- |
Subtraia meses ou anos. |
operator== |
Determine se dois valores year_month_day_last são iguais. |
operator<=> |
Compare dois valores year_month_day_last . Os operadores >, >=, <=, <, != são sintetizados pelo compilador. |
operator<< |
Gere um year_month_day_last 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_last
para um mês e um ano especificados.
constexpr year_month_day_last(const year& y, const month_day_last& mdl) noexcept;
Parâmetros
mdl
O valor mensal de month_day_last
é armazenado no year_month_day_last
construído.
y
O valor year
é armazenado no year_month_day_last
construído.
Comentários
Para obter informações sobre a sintaxe do C++20 usada para especificar datas, consulte operator/
Exemplo: criar um year_month_day_last
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_day_last ymdl{ April / last / 1975 };
std::cout << ymdl;
return 0;
}
1975/Apr/last
day
Se ok()
for true
, ele retornará um dia representando o último dia do ano, mês representado por esse year_month_day_last
.
constexpr day day() const noexcept;
Valor retornado
Se ok()
for true
, ele retornará um day
representando o último dia do ano e mês representado por *this
. Caso contrário, o valor retornado não será especificado.
local_days
Obtenha o mês, o dia e o ano nesse year_month_day_last
como uma contagem de dias.
constexpr explicit operator local_days() const noexcept;
Valor retornado
local_days{sys_days{*this}.time_since_epoch()}
Exemplo
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_day_last ymdl{ June / last / 2021 };
auto ld = local_days(ymdl);
std::cout << ld.time_since_epoch();
return 0;
}
18808d
month
Obtenha o valor do mês armazenado.
constexpr month month() const noexcept;
Valor retornado
O valor month
.
month_day_last
Obtém o valor month_day_last
armazenado nesse year_month_day_last
.
constexpr month_day_last month_day_last() const noexcept;
Valor retornado
O valor month_day_last
armazenado nesse year_month_day_last
.
operator sys_days
Obtenha o mês, o dia e o ano nesse year_month_day_last
como uma contagem de dias da época para o relógio do sistema.
constexpr explicit operator sys_days() const noexcept;
Valor retornado
Retorna sys_days{this->year()/this->month()/this->day()}
Exemplo
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_day_last ymdl{ June / last / 2021 };
auto sd = sys_days(ymdl);
std::cout << sd.time_since_epoch();
return 0;
}
18808d
year
Obtenha o ano.
constexpr year year() const noexcept;
Valor retornado
O year
.
ok
Verifique se os valores year
e month_day_last
armazenados nesse year_month_day_last
estão no intervalo válido.
constexpr bool ok() const noexcept;
Valor retornado
true
se os valores year
e month_day_last
armazenados nesse year_month_day_last
estão no intervalo válido. Caso contrário, false
.
operator+=
Adicione meses ou anos a esse year_month_day_last
.
1) constexpr year_month_day_last& operator+=(const months& m) noexcept;
2) constexpr year_month_day_last& operator+=(const years& y) noexcept;
Parâmetros
m
O número de meses a serem adicionados.
y
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_last ymdl{ April / last / 1975 };
std::cout << ymdl << '\n';
ymdl += months{1};
ymdl += years{1};
std::cout << ymdl;
return 0;
}
1975/Apr/last
1976/May/last
operator-=
Subtraia meses ou anos desse year_month_day_last
.
1) constexpr year_month_day_last& operator-=(const months& m) noexcept;
2) constexpr year_month_day_last& operator-=(const years& y) noexcept;
Parâmetros
m
O número de meses para subtração.
y
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_last ymdl{ April / last / 1975 };
std::cout << ymdl << '\n';
ymdl -= months{1};
ymdl -= years{1};
std::cout << ymdl;
return 0;
}
1975/Apr/last
1974/Mar/last
Confira também
<chrono>
year
year_month
year_month_day
year_month_weekday
year_month_weekday_last
operator/
Referência de Arquivos de Cabeçalho