Partilhar via


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