Compartir a través de


Clase day

Representa un día del mes. Por ejemplo, el día 25 del mes.

Sintaxis

class day; // C++20

Comentarios

Normalmente day contiene los valores en el intervalo [1, 31]. Puede contener valores no negativos fuera de este intervalo, pero el comportamiento no se especifica si no está dentro del intervalo [0, 255].

Miembros

Nombre Descripción
Constructores Construya un elemento day.
ok Compruebe que el valor del día esté en el intervalo válido [1,31].
operator++ Incrementa este elemento day.
operator+= Suma el número especificado de días a este elemento day.
operator-- Disminuye el elemento day.
operator-= Resta el número especificado de días de este elemento day.
operator unsigned Obtiene el valor de día como un entero sin signo.

No miembros

Nombre Descripción
from_stream Analiza un day desde la secuencia especificada con el formato indicado.
operator+ Suma el número especificado de días a este elemento day y devuelve un nuevo objeto day.
operator- Resta el número especificado de días de este elemento day y devuelve un nuevo objeto day.
operator== Determina si dos instancias de day son iguales.
operator<=> Compara este elemento day con otro elemento day. El compilador sintetiza los operadores >, >=, <=, <, !=.
operator<< Genera un elemento day en la secuencia especificada.
operator""d Crea un literal day para un día del mes.

Requisitos

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

Espacio de nombres: std::chrono

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

Constructores

Construye un objeto day.

1) day() = default;
2) explicit constexpr day(unsigned d) noexcept;

Parámetros

d
Construye un objeto day con el valor d.

Comentarios

1) El constructor predeterminado no inicializa el valor del día.
2) Construye un elemento day con el valor del día inicializado en d.

Ejemplo: Creación de un objeto day

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    day d{1}; // day 1
    day d2 = 2d; // day 2

    std::cout << d << ", " << d2;

    return 0;
}
01, 02

ok

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

constexpr bool ok() const noexcept;

Valor devuelto

true si el valor del día está en el intervalo [1,31]. En caso contrario, es false.

operator++

Agrega 1 al valor del día.

1) constexpr std::chrono::day& operator++() noexcept;
2) constexpr std::chrono::day operator++(int) noexcept;

Valor devuelto

1) Referencia a *this day después de que se haya incrementado (un incremento postfijo).
2) Una copia de day, 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()
{
    day d{1};

    std::cout << d << " " << ++d << "\n"; // constexpr day& operator++() noexcept
    std::cout << d << " " << d++ << "\n"; // constexpr day operator++(int) noexcept
    std::cout << d;

    return 0;
}
01 02
02 02
03

Comentarios

Si el resultado incrementado está fuera del intervalo [0, 255], no se especifica el valor almacenado.

operator--

Resta 1 del valor del día.

1) constexpr std::chrono::day& operator--() noexcept;
2) constexpr std::chrono::day operator--(int) noexcept;

Valor devuelto

1) Una referencia a este día (*this) después de que se haya reducido (un decremento postfijo).
2) Una copia de *day, antes de que se redujera (un decremento prefijo).

Ejemplo: operator--

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

int main()
{
    day d{5};
    std::cout << d << " " << --d << "\n"; // constexpr day& operator--() noexcept
    std::cout << d << " " << d-- << "\n"; // constexpr day operator--(int) noexcept
    std::cout << d << "\n";

    return 0;
}
05 04
04 04
03

Comentarios

Si el resultado reducido está fuera del intervalo [0, 255], no se especifica el valor almacenado.

operator+=

Suma días a este day.

constexpr day& operator+=(const days& d) noexcept;

Parámetros

d
El número de días que se van a agregar.

Valor devuelto

*this

Si el resultado está fuera del intervalo [0, 255], no se especifica el valor almacenado.

operator-=

Resta días de este elemento day.

constexpr day& operator-=(const days& d) noexcept;

Parámetros

d
Número de días que se va a restar.

Valor devuelto

*this. Si el resultado está fuera del intervalo [0, 255], no se especifica el valor almacenado.

operator unsigned

Obtiene el valor de day.

explicit constexpr operator unsigned() const noexcept;

Valor devuelto

El valor de day

Ejemplo: operator unsigned()

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

int main()
{
    chrono::day d{14d};
    unsigned dayValue = static_cast<unsigned>(d);
    cout << dayValue << "\n";
    
    return 0;
}
14

Consulte también

<chrono>
Clase month_day
Clase month_day_last
year_month_day
year_month_day_last
Referencia de archivos de encabezado