Classe year_month_weekday
Representa um ano, mês e dia da semana específicos do mês.
Sintaxe
class year_month_weekday; // C++20
Comentários
year_month_weekday
dá suporte à aritmética orientada a anos e meses, mas não à aritmética orientada a dias. Para a aritmética orientada a dias, use a conversão sys_days
para converter em um sys_days
, que dá suporte à aritmética orientada a dias.
year_month_weekday
é um tipo de classe de layout padrão que pode ser facilmente copiada.
Membros
Nome | Descrição |
---|---|
Constructor |
Construa um year_month_weekday com o mês e o dia da semana especificados. |
index |
Obtenha o índice do dia da semana. |
month |
Obtenha o valor de mês. |
ok |
Verifique se o valor year_month_weekday é 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_weekday como local_days . |
operator sys_days |
Obtenha a contagem de dias da época system_clock para esse year_month_weekday como sys_days . |
weekday |
Obtenha o valor do dia da semana. |
weekday_indexed |
Obtenha o [weekday_indexed ] armazenado neste year_month_weekday . |
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_weekday são iguais. |
operator<< |
Gerar um year_month_weekday para o fluxo fornecido. |
Requisitos
Cabeçalho: <chrono>
(desde C++20)
Namespace: std::chrono
Opção do compilador: /std:c++latest
Construtor
Constrói um year_month_weekday
.
// 1)
year_month_weekday() = default
// 2)
constexpr year_month_weekday(const year& y, const month& m, const weekday_indexed& wdi) noexcept;
// 3)
constexpr explicit year_month_weekday(const local_days& dp) noexcept;
// 4)
constexpr year_month_weekday(const sys_days& dp) noexcept;
Parâmetros
m
O valor month
.
dp
sys_days
ou local_days
wdi
O valor weekday
.
y
O valor year
.
Comentários: construtor
1) O construtor padrão não inicializa qualquer um dos campos.
2) Constrói um year_month_weekday
que corresponde ao especificado year
, month
e weekday_indexed
.
3) Constrói um year_month_weekday
que corresponde à data representada por sys_days{dp.time_since_epoch()}
.
4) Constrói um year_month_weekday
que corresponde à data representada por dp
. Para qualquer year_month_weekday
(ymdl) para o qual ok()
é true
, a comparação com operator==
a year_month_weekday{sys_days{ymdl}}
será true
.
Para obter informações sobre a sintaxe do C++20 usada para especificar datas, consulte operator/
Exemplo: criar um year_month_weekday
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
index
Obtenha o índice da semana do dia da semana neste year_month_weekday
.
constexpr unsigned index() const noexcept;
Valor retornado
O índice do dia da semana. Por exemplo, se o dia da semana fosse a primeira quarta-feira da semana, o índice seria 1.
month
Obtenha o valor de mês.
constexpr month month() const noexcept;
Valor retornado
O valor month
.
ok
Verifique se o valor armazenado nesse year_month_weekday
é válido. Os year
, month
e weekday_index
armazenados nesse year_month_weekday
devem ser ok
para que essa função retorne true
. Caso contrário, retorna false
.
constexpr bool ok() const noexcept;
Valor retornado
true
se o valor year_month_weekday
for válido. Caso contrário, false
.
Um year_month_weekday
será válido se ambos month
forem válidos e o valor weekday_indexed
for válido.
operator+=
Adicione meses ou anos a esse year_month_weekday
.
1) constexpr year_month_weekday& operator+=(const months& m) noexcept;
2) constexpr year_month_weekday& 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_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
ymw += months{1};
ymw += years{1};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
1998/Feb/Wed[1]
operator-=
Subtraia meses ou anos desse year_month_weekday
.
1) constexpr year_month_weekday& operator-=(const months& m) noexcept;
2) constexpr year_month_weekday& 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_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
ymw -= months{1};
ymw -= years{1};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
1995/Dec/Wed[1]
operator local_days
Obtenha a contagem de dias da época system_clock
(01/01/1970) para esse year_month_weekday
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()}
. Caso contrário, o valor retornado não será especificado.
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
que representa a data que é (index() - 1) * 7
dias após o primeiro weekday()
de year()/month()
. Se index()
for 0
, o sys_days
retornado representa a data 7 dias antes do primeiro weekday()
de year()/month()
.
weekday
Obtenha o weekday
armazenado no weekday_indexed
armazenado neste year_month_weekday
.
constexpr weekday weekday() const noexcept;
Valor retornado
O valor weekday
.
weekday_indexed
Obtenha o weekday_indexed
armazenado neste year_month_weekday
.
constexpr weekday_indexed weekday_indexed() const noexcept;
Valor retornado
O valor weekday_indexed
.
year
Obtenha o valor de ano.
constexpr year year() const noexcept;
Valor retornado
O valor year
.
Confira também
<chrono>
year
year_month
year_month_day
year_month_day_last
year_month_weekday_last
operator/
Referência de Arquivos de Cabeçalho