Classe year
Representa um ano no calendário gregoriano.
Sintaxe
class year; // C++20
Comentários
Um year
pode conter um valor de ano entre -32767 e 32767.
Membros
Nome | Descrição |
---|---|
Construtores | Construir um year |
is_leap |
Determine se o ano é um ano bissexto. |
max |
Retorna o maior valor de ano possível. |
min |
Retorna o menor valor de ano possível. |
ok |
Verifique se o valor do ano está no intervalo válido [-32767, 32767]. |
operator+ |
Mais unário. |
operator++ |
Incremente o ano. |
operator+= |
Adicione o número especificado de anos a este year . |
operator- |
Menos unário. |
operator-- |
Reduza o ano. |
operator-= |
Subtraia o número especificado de anos deste year . |
operator int |
Obtenha o valor year . |
Não membros
Nome | Descrição |
---|---|
from_stream |
Analise um year de um fluxo usando o formato especificado |
operator+ |
Adicione anos. |
operator- |
Subtraia anos. |
operator== |
Determine se dois anos são iguais. |
operator<=> |
Compare este year com outro year . Os operadores >, >=, <=, <, != são sintetizados pelo compilador. |
operator<< |
Gerar um year para o fluxo fornecido. |
operator""y |
Crie um literal year . |
Requisitos
Cabeçalho: <chrono>
(desde C++20)
Namespace: std::chrono
Opção do compilador: /std:c++latest
Construtores
Construa um year
.
1) year() = default;
2) explicit constexpr year(unsigned y) noexcept;
Parâmetros
y
Construa um year
com valor y
.
Comentários
1) O construtor padrão não inicializa o valor year
.
2) Construa um year
com o valor especificado.
Exemplo: criar um year
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2020};
year y2 = 2021y;
std::cout << y << ", " << y2;
return 0;
}
2020, 2021
is_leap
Verifique se o valor armazenado neste year
está no intervalo válido.
constexpr bool is_leap() const noexcept;
Valor retornado
true
se o valor de ano é um ano bissexto. Caso contrário, false
.
Um ano bissexto é um ano divisível por 4, mas não 100 – ou é divisível por 400.
max
Retorna o maior ano possível.
static constexpr year max() noexcept;
Valor retornado
year{32767}
min
Retorna o menor ano possível.
static constexpr year min() noexcept;
Valor retornado
year{-32767}
ok
Verifique se o valor armazenado neste year
está no intervalo válido.
constexpr bool ok() const noexcept;
Valor retornado
true
se o valor do ano estiver no intervalo [-32676, 32767]. Caso contrário, false
.
operator+
Aplique adição unária.
constexpr year operator+() const noexcept;
Valor retornado
Retorna *this
Exemplo: operator+
unário
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{-1};
std::cout << +y;
return 0;
}
-0001
operator++
Adicione 1 ao valor do ano.
1) constexpr year& operator++() noexcept;
2) constexpr year operator++(int) noexcept;
Valor retornado
1) Retorna uma referência a este ano depois que ele foi incrementado (um incremento de pós-fixação).
2) Retorna uma cópia do year
, antes de ter sido incrementado (um incremento de prefixo).
Exemplo: operator++
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2021};
std::cout << y << " " << ++y << "\n"; // constexpr year& operator++() noexcept
std::cout << y << " " << y++ << "\n"; // constexpr year operator++(int) noexcept
std::cout << y << "\n";
return 0;
}
2021 2022
2022 2022
2023
Comentários
Se o resultado incrementado exceder 32767, ele transbordará para -32768
operator-
Menos unário. Negue o year
.
constexpr year operator-() const noexcept; // C++20
Valor retornado
Retorna uma cópia negada de year
.
Exemplo: operator-
unário
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{1977};
std::cout << -y << '\n';
return 0;
}
-1977
operator--
Subtraia 1 do valor do ano.
1) constexpr year& operator--() noexcept;
2) constexpr year operator--(int) noexcept;
Valor retornado
1) Uma referência a isso year
depois de ter sido decrementado (um decréscimo pós-fixado).
2) Uma cópia do antes de ter sido decrementado (um decréscimo de prefixo).year
Exemplo: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2021};
std::cout << y << " " << --y << "\n"; // constexpr year& operator++() noexcept
std::cout << y << " " << y-- << "\n"; // constexpr year operator++(int) noexcept
std::cout << y << "\n";
return 0;
}
2021 2020
2020 2020
2019
Comentários
Se o resultado reduzido for menor que -32768, ele será definido como 32767.
operator+=
Adicione dias a este year
.
constexpr year& operator+=(const years& y) noexcept;
Parâmetros
y
O número de anos a ser adicionado.
Valor retornado
*this
Se o resultado incrementado exceder 32767, ele transbordará para -32768.
operator-=
Subtraia dias a deste year
.
constexpr year& operator-=(const years& y) noexcept;
Parâmetros
y
O número de anos para subtração.
Valor retornado
*this
. Se o resultado reduzido for menor que -32768, ele será definido como 32767.
operator int
Obtenha o valor year
.
explicit constexpr operator int() const noexcept;
Valor retornado
O valor do year
Exemplo: operator int()
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2020};
int yearValue = static_cast<int>(y);
std::cout << yearValue;
return 0;
}
2020
Confira também
<chrono>
year_month
year_month_day
year_month_day_last
year_month_weekday
year_month_weekday_last
Referência de Arquivos de Cabeçalho