Partilhar via


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