Compartilhar via


Classe year_month_weekday

Representa um ano, um mês e um dia da semana específicos do mês.

Sintaxe

class year_month_weekday; // C++20

Observações

year_month_weekday dá suporte à aritmética orientada a anos e meses, mas não à aritmética orientada a dias. Para aritmética orientada a dias, use a sys_days conversão 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 system_clock época para isso year_month_weekday como local_days.
operator sys_days Obtenha a contagem de dias da system_clock época para isso year_month_weekday como sys_days.
weekday Pegue o dia da semana.
weekday_indexed Obtenha o weekday_indexed armazenado neste year_month_weekday.
year Pegue o ano.

Não membros

Nome Descrição
operator+ Adicione meses ou anos.
operator- Subtrair meses ou anos.
operator== Determine se dois year_month_weekday valores 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
A sys_days ou local_days

wdi
O valor weekday.

y
O valor year.

Comentários: construtor

1) O construtor padrão não inicializa nenhum dos campos.

2) Constrói um year_month_weekday que corresponde ao especificado year, monthe 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 year_month_weekday{sys_days{ymdl}} comparação com operator== será true.

Para obter informações sobre a sintaxe 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 de semana do dia da semana neste year_month_weekday.

constexpr unsigned index() const noexcept;

Valor de retorno

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 de retorno

O valor month.

ok

Verifique se o valor armazenado nisso year_month_weekday é válido. O year, monthe weekday_index armazenado nisso year_month_weekday deve ser ok tudo para que essa função retorne true. Caso contrário, retorna false.

constexpr bool ok() const noexcept;

Valor de retorno

true se o year_month_weekday valor for válido. Caso contrário, false.
Um year_month_weekday será válido se ambos forem month válidos e o weekday_indexed valor for válido.

operator+=

Adicione meses ou anos a isso 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 serem adicionados.

Valor de retorno

*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-=

Subtrair meses ou anos a partir disso 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 subtraídos.

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

Valor de retorno

*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

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

constexpr explicit operator local_days() const noexcept;

Valor de retorno

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 system_clock época (1/1/1970) para isso year_month_day como sys_days.

constexpr operator sys_days() const noexcept;

Valor de retorno

If 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 retornado sys_days 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 de retorno

O valor weekday.

weekday_indexed

Obtenha o weekday_indexed armazenado neste year_month_weekday.

constexpr weekday_indexed weekday_indexed() const noexcept;

Valor de retorno

O valor weekday_indexed.

year

Obtenha o valor do ano.

constexpr year year() const noexcept;

Valor de retorno

O valor year.

Consulte 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