Espacios de nombres
Variantes
Acciones

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

De cppreference.com
< cpp‎ | chrono‎ | weekday
 
 
Biblioteca de servicios
 
 
 
Definido en el archivo de encabezado <chrono>
constexprstd::chrono::weekday operator+(conststd::chrono::weekday& wd,
                                          conststd::chrono::days& d )noexcept;
(1) (desde C++20)
constexprstd::chrono::weekday operator+(conststd::chrono::days& d,
                                          conststd::chrono::weekday& wd )noexcept;
(2) (desde C++20)
constexprstd::chrono::weekday operator-(conststd::chrono::weekday& wd,
                                          conststd::chrono::days& d )noexcept;
(3) (desde C++20)
constexprstd::chrono::days operator-(conststd::chrono::weekday& wd1,
                                       conststd::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<longlong>(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.

Contenido

[editar]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.

[editar]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.

[editar]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) == 6std::cout<<(wd ==std::chrono::Saturday)<<'\n';}

Salida:

true true true true true true

[editar]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]
close