std::chrono::year_month_day_last
De cppreference.com
| Definido en el archivo de encabezado <chrono>
|
||
class year_month_day_last;
|
(desde C++20) | |
La clase year_month_day_last representa el último día de un año y de un mes específicos. Es un punto de tiempo basado en campos, con una resolución de std::chrono::days, sujeto al límite de que solo puede representar el último día de un mes.
Se admite directamente la aritmética orientada a años (std::chrono::years) y meses (std::chrono::months). Una conversión implícita a días (std::chrono::sys_days) permite que la aritmética orientada a días (std::chrono::days) se ejecute eficientemente.
year_month_day_last es un tipo TriviallyCopyable StandardLayoutType.
Funciones miembro
Construye un objeto de tipo year_month_day_last. (función miembro pública) | |
| Modifica el punto de tiempo por algún número de meses o años. (función miembro pública) | |
| Accede a los datos miembro de este objeto. (función miembro pública) | |
| Convierte a un objeto std::chrono::time_point. (función miembro pública) | |
| Verifica si este objeto representa una fecha válida. (función miembro pública) |
Funciones no miembro
(C++20) |
Compara dos valores de tipo year_month_day_last. (función) |
(C++20) |
Suma o resta de un objeto year_month_day_last algún número de años o meses. (función) |
(C++20) |
Emite un objeto year_month_day_last en un flujo. (plantilla de función) |
Clases auxiliares
Especialización de std::formatter que formatea un objeto de tipo year_month_day_last conforme al formato suministrado. (especialización de plantilla de clase) |
Ejemplo
Ejecuta este código
#include <iostream>
#include <chrono>
// hasta que el compilador en línea admita emitir the year_month_day_last:
std::ostream& operator<< (std::ostream& os, std::chrono::year_month_day_last ymdl) {
return os << static_cast<int>(ymdl.year()) << '/'
<< static_cast<unsigned>(ymdl.month()) << '/'
<< static_cast<unsigned>(ymdl.day());
}
int main()
{
const auto ymd = std::chrono::year_month_day{
std::chrono::floor<std::chrono::days>(
std::chrono::system_clock::now()
)
};
const std::chrono::year_month_day_last ymdl{
ymd.year(), ymd.month() / std::chrono::last
};
std::cout << "La fecha del último día de este mes es: " << ymdl << '\n';
// El objeto `last` puede ubicarse dondequiera que sea legal ubicar un objeto `day`:
using namespace std::chrono;
constexpr std::chrono::year_month_day_last
ymdl1 = 2023y / February / last,
ymdl2 = last / February / 2023y,
ymdl3 = February / last / 2023y;
static_assert( ymdl1 == ymdl2 and ymdl2 == ymdl3 );
}
Posible salida:
La fecha del último día de este mes es: 2021/11/30
Véase también
(C++20) |
Representa un año, mes y día específicos (clase) |