Espacios de nombres
Variantes

std::chrono::operator+, std::chrono::operator- (std::chrono::weekday)

De cppreference.com
 
 
Biblioteca de servicios
Apoyo del lenguaje
Apoyo de tipos (tipos básicos, RTTI)
Macros de prueba de característica de la biblioteca (C++20)
Servicios de programa
Funciones variádicas
Apoyo de corrutinas (C++20)
Apoyo de contratos (C++26)
Comparación de tres vías (C++20)
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

 
 
 
Definido en el archivo de encabezado <chrono>
constexpr std::chrono::weekday operator+( const std::chrono::weekday& wd,
                                          const std::chrono::days& d ) noexcept;
(1) (desde C++20)
constexpr std::chrono::weekday operator+( const std::chrono::days& d,
                                          const std::chrono::weekday& wd ) noexcept;
(2) (desde C++20)
constexpr std::chrono::weekday operator-( const std::chrono::weekday& wd,
                                          const std::chrono::days& d ) noexcept;
(3) (desde C++20)
constexpr std::chrono::days operator-( const std::chrono::weekday& wd1,
                                       const std::chrono::weekday& wd2 ) noexcept;
(4) (desde C++20)
1-2) Suma d.count() días a wd. El valor del día de la semana retenido en el resultado se calcula evaluando primero static_cast<long long>(wd.c_encoding()) + d.count(), reduciéndolo en módulo 7 a un entero en el rango [0, 6].
3) Resta d.count() días de wd. Equivalente a return wd + -d;
4) Si tanto wd1.ok() como wd2.ok() son true, devuelve un valor d de tipo std::chrono::days tal que d.count() se encuentra en el rango [0, 6] y wd2 + d == wd1. De lo contrario el valor devuelto no está especificado.

Valor de retorno

1-3) Un objeto std::chrono::weekday que retiene un valor del día de la semana calculado como se describe anteriormente.
4) Un objeto std::chrono::days que representa la distancia entre wd1 y wd2.

Notas

Siempre que el cálculo no se desborde, (1-3) siempre devuelve un día de la semana válido incluso si wd.ok() es false.

Ejemplo

#include <iostream>
#include <chrono>
 
int main()
{
    std::cout << std::boolalpha;
 
    std::chrono::weekday wd {4};
    wd = wd + std::chrono::days(2);
    std::cout << (wd == std::chrono::weekday(6)) << ' '
              << (wd == std::chrono::Saturday) << ' ';
 
    wd = wd - std::chrono::days(3);
    std::cout << (wd == std::chrono::weekday(3)) << ' '
              << (wd == std::chrono::Wednesday) << ' ';
 
    wd = std::chrono::Tuesday;
    wd = wd + std::chrono::days{8}; // (((2 + 8) == 10) % 7) == 3;
    std::cout << (wd == std::chrono::Wednesday) << ' ';
 
    wd = wd + (std::chrono::Sunday - std::chrono::Thursday); // (3 + 3) == 6
    std::cout << (wd == std::chrono::Saturday) << '\n';
}

Salida:

true true true true true true

Véase también

Incrementa o decrementa el día de la semana.
(función miembro pública) [editar]
Suma o resta un número de días.
(función miembro pública) [editar]