Compartir vía


Clase year

Representa un año en el calendario gregoriano.

Sintaxis

class year; // C++20

Comentarios

Un year puede contener un valor de año entre -32767 y 32767.

Miembros

Nombre Descripción
Constructores Construyen un elemento year
is_leap Determine si el año es un año bisiesto.
max Devuelve el valor de año más grande posible.
min Devuelve el valor de año más pequeño posible.
ok Compruebe que el valor del año esté en el intervalo válido [-32767, 32767].
operator+ Unario más.
operator++ Incrementa el año.
operator+= Suma el número especificado de años a este year.
operator- Unario menos.
operator-- Disminuye el año.
operator-= Resta el número especificado de años de este year.
operator int Obtiene el valor de year.

No miembros

Nombre Descripción
from_stream Analiza un year desde la secuencia especificada con el formato especificado
operator+ Agrega años.
operator- Resta años.
operator== Determina si dos años son iguales.
operator<=> Compara este elemento year con otro elemento year. El compilador sintetiza los operadores >, >=, <=, <, !=.
operator<< Genera un elemento year en la secuencia especificada.
operator""y Crear un year literal.

Requisitos

Encabezado: <chrono> (desde C++20)

Espacio de nombres: std::chrono

Opción del compilador: /std:c++latest

Constructores

Construya un elemento year.

1) year() = default;
2) explicit constexpr year(unsigned y) noexcept;

Parámetros

y
Construye un objeto year con el valor y.

Comentarios

1) El constructor predeterminado no inicializa el valor year.
2) Construye un objeto year con los valores especificados.

Ejemplo: Creación de un objeto 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

Compruebe si el valor almacenado en esta instancia de year se encuentra en el intervalo válido.

constexpr bool is_leap() const noexcept;

Valor devuelto

true si el valor del año es bisiesto. En caso contrario, es false. Un año bisiesto es un año divisible por 4, pero no 100--o es divisible por 400.

max

Devuelve el año más grande posible.

static constexpr year max() noexcept;

Valor devuelto

year{32767}

min

Devuelve el año más pequeño posible.

static constexpr year min() noexcept;

Valor devuelto

year{-32767}

ok

Compruebe si el valor almacenado en esta instancia de year se encuentra en el intervalo válido.

constexpr bool ok() const noexcept;

Valor devuelto

true si el valor del año está en el rango [-32676, 32767]. En caso contrario, es false.

operator+

Aplicar unario más.

constexpr year operator+() const noexcept;

Valor devuelto

Devuelve *this

Ejemplo: operator+ unario

// 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++

Agregue 1 al valor del año.

1) constexpr year& operator++() noexcept;
2) constexpr year operator++(int) noexcept;

Valor devuelto

1) Devuelve una referencia a este año después de que se haya incrementado (un incremento postfijo).
2) Devuelve una copia de year, antes de que se incrementara (un incremento prefijo).

Ejemplo: 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

Comentarios

Si el resultado incrementado supera 32767, se desborda a -32768

operator-

Unario menos. Niega el objeto year.

constexpr year operator-() const noexcept; // C++20

Valor devuelto

Devuelve una copia negada de year.

Ejemplo: operator- unario

// 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--

Resta 1 del valor de año.

1) constexpr year& operator--() noexcept;
2) constexpr year operator--(int) noexcept;

Valor devuelto

1) Una referencia a esto year después de que se haya decrementado (un postfijo decremento).
2) Una copia del antes de year que se haya decrementado (un prefijo decremento).

Ejemplo: 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

Comentarios

Si el resultado reducido es menor que -32768, se establece en 32767.

operator+=

Suma días a este year.

constexpr year& operator+=(const years& y) noexcept;

Parámetros

y
Número de años que se van a agregar.

Valor devuelto

*this si el resultado incrementado supera 32767, se desborda a -32768.

operator-=

Resta días de este elemento year.

constexpr year& operator-=(const years& y) noexcept;

Parámetros

y
Número de años que se va a restar.

Valor devuelto

*this. Si el resultado reducido es menor que -32768, se establece en 32767.

operator int

Obtiene el valor de year.

explicit constexpr operator int() const noexcept;

Valor devuelto

El valor de year

Ejemplo: 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

Consulte también

<chrono>
year_month
year_month_day
year_month_day_last
year_month_weekday
year_month_weekday_last
Referencia de archivos de encabezado