Clase weekday
Representa un día de la semana del calendario gregoriano. Martes, por ejemplo.
Sintaxis
class weekday; // C++20
Comentarios
Un objeto weekday
puede contener un valor de [0, 255], pero normalmente contiene un valor [0, 6] para representar un día de la semana.
Vea Constantes de weekday más abajo para saber qué constantes se pueden usar con la clase weekday
.
Miembros
Nombre | Descripción |
---|---|
Constructores | Construya un elemento weekday . |
c_encoding |
Obtiene el valor de weekday . |
iso_encoding |
Obtiene el valor ISO 8601 de weekday . |
ok |
Comprueba si el valor de weekday es válido. |
operator++ |
Incrementa el weekday . |
operator+= |
Suma el número especificado de días laborables a weekday . |
operator-- |
Disminuye el elemento weekday . |
operator-= |
Resta el número especificado de días laborables de weekday . |
operator[] |
Crea un objeto weekday_indexed o weekday_last a partir de este objeto weekday . |
No miembros
Nombre | Descripción |
---|---|
from_stream |
Analiza un weekday desde la secuencia especificada con el formato indicado. |
operator+ |
Suma el número especificado de días laborables a weekday . |
operator- |
Resta el número especificado de días laborables de weekday o halla la diferencia entre dos objetos weekday . |
operator== |
Determina si dos objetos weekday son iguales. |
operator<< |
Genera un weekday a una secuencia. |
Requisitos
Encabezado: <chrono>
Desde C++20
Espacio de nombres: std::chrono
Opción del compilador: /std:c++latest
Constructores
Construye un objeto weekday
.
1) weekday() = default; // C++20
2) explicit constexpr weekday(unsigned wd) noexcept; // C++20
3) constexpr weekday(const sys_days& dp) noexcept; // C++20
4) explicit constexpr weekday(const local_days& dp) noexcept; // C++20
Parámetros
dp
Construye un objeto weekday
utilizando el día de la semana dp
.
wd
Construye un objeto weekday
con el valor wd
.
Comentarios
1) El constructor predeterminado no inicializa el valor de weekday.
2) Construye un objeto weekday
con los valores especificados.
Si wd
es 7, weekday
se construye con un valor de 0.
No inicialice con valores superiores a 255 o el objeto weekday
resultante tendrá un valor no especificado.
3) Calcula qué día de la semana corresponde al valor de std::chrono::sys_days
dp
, y construye un objeto weekday
usando ese día.
4) Calcula qué día de la semana corresponde al valor de std::chrono::local_days
dp
, y construye un objeto weekday
usando ese día. Se comporta como si creara el objeto weekday
mediante weekday(std::chrono::sys_days(dp.time_since_epoch()))
.
Ejemplo: Creación de un objeto weekday
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
weekday wd{ Wednesday };
weekday wd2{ 3 };
std::cout << wd << '\n' << wd2;
return 0;
}
Wednesday
Wednesday
c_encoding
constexpr unsigned c_encoding() const noexcept;
Valor devuelto
El valor del día de la semana.
iso_encoding
El valor de día de la semana, pero con domingo (0) se interpreta como 7 según la norma ISO 8601.
constexpr unsigned iso_encoding() const noexcept;
Valor devuelto
El valor del día de la semana.
ok
Compruebe si el valor almacenado en esta instancia de weekday
se encuentra en el intervalo válido.
constexpr bool is_leap() const noexcept;
Valor devuelto
true
si el valor del día de la semana está en el intervalo [0, 6]. En caso contrario, es false
.
operator++
Suma 1 al valor del día de la semana.
1) constexpr std::chrono::weekday& operator++() noexcept;
2) constexpr std::chrono::weekday operator++(int) noexcept;
Valor devuelto
1) Una referencia a *this
día de la semana después de que se haya incrementado (un incremento postfijo).
2) Una copia de weekday
, antes de que se incrementara (un incremento prefijo).
Ejemplo: operator++
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
std::chrono::weekday wd{Thursday};
std::cout << wd << " " << ++wd << "\n"; // constexpr weekday& operator++() noexcept
std::cout << wd << " " << wd++ << "\n"; // constexpr weekday operator++(int) noexcept
std::cout << wd << "\n";
return 0;
}
Thu Fri
Fri Fri
Sat
Comentarios
El valor incrementado es módulo 7. Siempre estará en el intervalo [0, 6].
operator--
Resta 1 del valor de weekday
.
1) constexpr std::chrono::weekday& operator--() noexcept;
2) constexpr std::chrono::weekday operator--(int) noexcept;
Valor devuelto
1) Una referencia a *this
weekday
después de que se haya decrementado (un postfijo decremento).
2) Una copia del antes de weekday
que se haya decrementado (un prefijo decremento).
Ejemplo: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
weekday y = weekday{Thursday};
cout << y << " " << --y << "\n"; // constexpr weekday& operator--() noexcept
cout << y << " " << y-- << "\n"; // constexpr weekday operator--(int) noexcept
cout << y << "\n";
return 0;
}
Thu Wed
Wed Wed
Tue
Comentarios
Si el resultado reducido es menor que 0, se establece en 6.
operator+=
Suma días a weekday
.
constexpr weekday& operator+=(const days& d) noexcept;
Parámetros
*d*
El número de días que se van a agregar.
Valor devuelto
El valor de *this + d
. El resultado será módulo 7, en el intervalo [0, 6].
operator-=
Resta días de weekday
.
constexpr weekday& operator-=(const days& d) noexcept;
Parámetros
*d*
Número de días que se va a restar.
Valor devuelto
El valor de *this - d
. El resultado será módulo 7, en el intervalo [0, 6].
operator[]
Crea un objeto weekday_indexed o weekday_last a partir de este objeto weekday
.
1) std::chrono::weekday_indexed(*this, index) // C++20
2) std::chrono::weekday_last(*this) // C++20
Valor devuelto
1) std::chrono::weekday_indexed(*this, index)
2) std::chrono::weekday_last(*this)
Ejemplo: operator[]
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
constexpr auto firstMondayInJanuary =
year_month_day{ Monday[2] / January / 2021y };
std::cout << firstMondayInJanuary << "\n";
constexpr auto lastMondayInJanuary =
year_month_day{ Tuesday[last] / January / 2021y };
std::cout << lastMondayInJanuary << "\n";
}
2021-01-11
2021-01-26
Constantes de weekday
(C++20) El encabezado <chrono>
define las siguientes constantes que puede usar con weekday
para mayor comodidad, seguridad de tipos y mantenimiento del código. Estas constantes están dentro del ámbito si std::chrono
está dentro del ámbito.
// Calendrical constants
inline constexpr std::chrono::weekday Sunday{0};
inline constexpr std::chrono::weekday Monday{1};
inline constexpr std::chrono::weekday Tuesday{2};
inline constexpr std::chrono::weekday Wednesday{3};
inline constexpr std::chrono::weekday Thursday{4};
inline constexpr std::chrono::weekday Friday{5};
inline constexpr std::chrono::weekday Saturday{6};
Consulte también
Clase weekday_last
Clase weekday_indexed
<chrono>
Referencia de archivos de encabezado