Classe weekday
Representa um dia da semana no calendário gregoriano. Por exemplo, terça-feira.
Sintaxe
class weekday; // C++20
Comentários
Um weekday
pode conter um valor de [0, 255], mas normalmente contém um valor [0, 6] para representar um dia da semana.
Confira Constantes de dia da semana, abaixo, para obter constantes que você pode usar com a classe weekday
.
Membros
Nome | Descrição |
---|---|
Construtores | Construa um weekday . |
c_encoding |
Obtenha o valor weekday . |
iso_encoding |
Obtenha o valor weekday ISO 8601. |
ok |
Verifique se o valor weekday é válido. |
operator++ |
Incremente o weekday . |
operator+= |
Adicione o número especificado de dias da semana a este weekday . |
operator-- |
Reduzir o weekday . |
operator-= |
Subtrair o número especificado de dias da semana deste weekday . |
operator[] |
Crie um weekday_indexed ou weekday_last deste weekday . |
Não membros
Nome | Descrição |
---|---|
from_stream |
Analise um weekday do fluxo fornecido usando o formato especificado. |
operator+ |
Adicione o número especificado de dias da semana a este weekday . |
operator- |
Subtraia o número especificado de dias da semana deste weekday ou localize a diferença entre dois objetos weekday . |
operator== |
Determine se dois objetos weekday são iguais. |
operator<< |
Gere um weekday para um fluxo. |
Requisitos
Cabeçalho: <chrono>
Desde o C++20
Namespace: std::chrono
Opção do compilador: /std:c++latest
Construtores
Constrói um weekday
.
1) weekday() = default; // C++20
2) explicit constexpr weekday(unsigned wd) noexcept; // C++20
3) constexpr weekday(const sys_days& dp) noexcept; // C++20
4) explicit constexpr weekday(const local_days& dp) noexcept; // C++20
Parâmetros
dp
Construa um weekday
uso o dia da semana dp
.
wd
Construa um weekday
com valor wd
.
Comentários
1) O construtor padrão não inicializa o valor do dia da semana.
2) Construa um weekday
com o valor especificado.
Se wd
for 7, o weekday
será construído com um valor 0.
Não inicialize com valores acima de 255 ou o weekday
resultante terá um valor não especificado.
3) Calcula qual dia da semana corresponde ao valor std::chrono::sys_days
dp
e constrói um weekday
usando esse dia.
4) Calcula qual dia da semana corresponde ao valor std::chrono::local_days
dp
e constrói um weekday
usando esse dia. Ele se comporta como se você tivesse criado weekday
usando weekday(std::chrono::sys_days(dp.time_since_epoch()))
.
Exemplo: criar um weekday
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
weekday wd{ Wednesday };
weekday wd2{ 3 };
std::cout << wd << '\n' << wd2;
return 0;
}
Wednesday
Wednesday
c_encoding
constexpr unsigned c_encoding() const noexcept;
Valor retornado
O valor do dia da semana.
iso_encoding
O valor do dia da semana, mas com domingo (0), é interpretado como 7 de acordo com a norma ISO 8601.
constexpr unsigned iso_encoding() const noexcept;
Valor retornado
O valor do dia da semana.
ok
Verifique se o valor armazenado neste weekday
está no intervalo válido.
constexpr bool is_leap() const noexcept;
Valor retornado
true
se o valor do dia da semana estiver no intervalo [0, 6]. Caso contrário, false
.
operator++
Adicione 1 ao valor do dia da semana.
1) constexpr std::chrono::weekday& operator++() noexcept;
2) constexpr std::chrono::weekday operator++(int) noexcept;
Valor retornado
1) Uma referência ao dia da semana *this
depois que ela foi incrementada (um incremento de pós-fixação).
2) Uma cópia do weekday
, antes de ter sido incrementado (um incremento de prefixo).
Exemplo: operator++
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
std::chrono::weekday wd{Thursday};
std::cout << wd << " " << ++wd << "\n"; // constexpr weekday& operator++() noexcept
std::cout << wd << " " << wd++ << "\n"; // constexpr weekday operator++(int) noexcept
std::cout << wd << "\n";
return 0;
}
Thu Fri
Fri Fri
Sat
Comentários
O valor incrementado é modulo 7. Ele sempre estará no intervalo [0, 6].
operator--
Subtraia 1 do valor weekday
.
1) constexpr std::chrono::weekday& operator--() noexcept;
2) constexpr std::chrono::weekday operator--(int) noexcept;
Valor retornado
1) Uma referência a *this
weekday
depois de ter sido decrementado (um decremento pós-fixado).
2) Uma cópia do antes de ter sido decrementado (um decréscimo de prefixo).weekday
Exemplo: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
weekday y = weekday{Thursday};
cout << y << " " << --y << "\n"; // constexpr weekday& operator--() noexcept
cout << y << " " << y-- << "\n"; // constexpr weekday operator--(int) noexcept
cout << y << "\n";
return 0;
}
Thu Wed
Wed Wed
Tue
Comentários
Se o resultado reduzido for menor que 0, ele será definido como 6.
operator+=
Adicione dias a um weekday
.
constexpr weekday& operator+=(const days& d) noexcept;
Parâmetros
*d*
O número de dias a serem adicionados.
Valor retornado
O valor de *this + d
. O resultado será modulo 7 no intervalo [0, 6].
operator-=
Subtraia dias de weekday
.
constexpr weekday& operator-=(const days& d) noexcept;
Parâmetros
*d*
O número de dias a subtrair.
Valor retornado
O valor de *this - d
. O resultado será modulo 7 no intervalo [0, 6].
operator[]
Crie um weekday_indexed ou weekday_last deste weekday
.
1) std::chrono::weekday_indexed(*this, index) // C++20
2) std::chrono::weekday_last(*this) // C++20
Valor retornado
1) std::chrono::weekday_indexed(*this, index)
2) std::chrono::weekday_last(*this)
Exemplo: operator[]
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
constexpr auto firstMondayInJanuary =
year_month_day{ Monday[2] / January / 2021y };
std::cout << firstMondayInJanuary << "\n";
constexpr auto lastMondayInJanuary =
year_month_day{ Tuesday[last] / January / 2021y };
std::cout << lastMondayInJanuary << "\n";
}
2021-01-11
2021-01-26
Constantes de dia da semana
(C++20) O cabeçalho <chrono>
define as seguintes constantes que você pode usar com weekday
para maior conveniência, segurança de tipos e facilidade de manutenção do seu código. Essas constantes estão no escopo quando std::chrono
está no escopo.
// Calendrical constants
inline constexpr std::chrono::weekday Sunday{0};
inline constexpr std::chrono::weekday Monday{1};
inline constexpr std::chrono::weekday Tuesday{2};
inline constexpr std::chrono::weekday Wednesday{3};
inline constexpr std::chrono::weekday Thursday{4};
inline constexpr std::chrono::weekday Friday{5};
inline constexpr std::chrono::weekday Saturday{6};
Confira também
weekday_last
classe
weekday_indexed
classe
<chrono>
Referência de Arquivos de Cabeçalho