Utilerías de fecha y hora
C++ incluye soporte para dos tipos de manipulación del tiempo:
- La biblioteca
chrono, una colección flexible de tipos que mantienen la noción del tiempo con distintos grados de precisión (p. ej., std::chrono::time_point). - La biblioteca de fecha y hora estilo C (p. ej., std::time)
Contenido |
[editar] Biblioteca std::chrono
La biblioteca chrono define tres tipos principales, así como varias funciones de utilería y definiciones de tipo (typedefs) comunes.
- relojes
- puntos en el tiempo
- duraciones
[editar] Relojes
Un reloj consiste de un punto de inicio (o época) y una frecuencia de tics. Por ejemplo, un reloj puede tener una época de enero 1, 1970, y marcar cada segundo. C++ define varios tipos de relojes:
| Definido en el archivo de encabezado
<chrono> | |
| Definido en el espacio de nombres
std::chrono | |
| (C++11) |
Tiempo de pared a partir del reloj de tiempo real a lo largo del sistema. (clase) |
| (C++11) |
Reloj monotónico que nunca será ajustado. (clase) |
| (C++11) |
El reloj con mayor precisión disponible en el sistema. (clase) |
| (C++20) |
Determina si un tipo es un Clock (plantilla de clase) (plantilla de variables) |
| (C++20) |
Clock para el Tiempo Universal Coordinado (TUC) (clase) |
| (C++20) |
Clock para el Tiempo Atómico Internacional (TAI) (clase) |
| (C++20) |
Clock para tiempo GPS (clase) |
| (C++20) |
Clock usado para el tiempo de archivo (typedef) |
| (C++20) |
Pesudoreloj que representa la hora local (clase) |
[editar] Punto de tiempo
Un punto de tiempo es una duración de tiempo que ha pasado desde la época de un reloj específico.
| Definido en el archivo de encabezado
<chrono> | |
| Definido en el espacio de nombres
std::chrono | |
| (C++11) |
Un punto de tiempo. (plantilla de clase) |
| (C++20) |
Clase de rasgos que define cómo convertir puntos de tiempo de un reloj a otro (plantilla de clase) |
| (C++20) |
Convierte puntos de tiempo de un reloj a otro (plantilla de función) |
[editar] Duración
Una duración consiste en un lapso de tiempo, definido como un número de tics de alguna unidad de tiempo. Por ejemplo, "42 segundos" podría representarse por una duración que consta de 42 tics de una unidad de tiempo de 1 segundo.
| Definido en el archivo de encabezado
<chrono> | |
| Definido en el espacio de nombres
std::chrono | |
| (C++11) |
Un intervalo de tiempo. (plantilla de clase) |
[editar] Hora del día
time_of_day divide una duración que representa el tiempo transcurrido desde la medianoche en horas, minutos, segundos y fracciones de segundo, según corresponda. Es principalmente una herramienta de formato.
| Definido en el archivo de encabezado
<chrono> | |
| Definido en el espacio de nombres
std::chrono | |
| (C++20) |
Representa una hora del día (plantilla de clase) |
| (C++20) |
Traduce entre un formato de hora del día de 12h/24h (función) |
[editar] Calendario
| Definido en el archivo de encabezado
<chrono> | |
| Definido en el espacio de nombres
std::chrono | |
| (C++20) |
Clase etiqueta que indica el último día o día de la semana de un mes (clase) |
| (C++20) |
Representa un día de un mes (clase) |
| (C++20) |
Representa un mes de un año (clase) |
| (C++20) |
Representa un año en el calendario gregoriano (clase) |
| (C++20) |
Representa un día de la semana en el calendario gregoriano (clase) |
| (C++20) |
Representa el enésimo día de la semana de un mes (clase) |
| (C++20) |
representa el último día de la semana de un mes (clase) |
| (C++20) |
Representa un día específico de un mes específico (clase) |
| (C++20) |
Representa el último día de un mes específico (clase) |
| (C++20) |
Representa el enésimo día de la semana de un mes específico (clase) |
| (C++20) |
Representa el último día de la semana de un mes específico (clase) |
| (C++20) |
Representa un mes específico de un año específico (clase) |
| (C++20) |
Representa un año, mes y día específicos (clase) |
| (C++20) |
Representa el último día de un año y mes específicos (clase) |
| (C++20) |
Representa el enésimo día de la semana de un año y mes específicos (clase) |
| (C++20) |
Representa el último día de la semana de un año y mes específicos (clase) |
| (C++20) |
Sintaxis convencional para la creación de fechas calendario gregorianas (función) |
[editar] Huso horario
| Definido en el archivo de encabezado
<chrono> | |
| Definido en el espacio de nombres
std::chrono | |
| (C++20) |
Describe una copia de la base de datos de husos horarios de IANA (clase) |
| (C++20) |
Representa una lista enlazada de bases de datos de husos horarios (clase) |
| Accede a, y controla la información de la base de datos de husos horarios global (función) | |
| (C++20) |
Localiza un huso horario basado en su nombre (función) |
| (C++20) |
Devuelve el huso horario actual (función) |
| (C++20) |
Representa un huso horario. (clase) |
| (C++20) |
Representa información acerca de un huso horario en un punto en el tiempo particular (clase) |
| (C++20) |
Representa información acerca la conversión de la hora local a la hora de UNIX (clase) |
| (C++20) |
Selecciona cómo debería resolverse una hora local ambigua (enum) |
| (C++20) |
Clase de rasgos para punteros a husos horarios usados por zoned_time (plantilla de clase) |
| (C++20) |
Representa un huso horario y un punto en el tiempo (clase) |
| (C++20) |
Contiene información sobre la inserción de un segundo intercalar (o segundo bisiesto) (clase) |
| (C++20) |
Representa una nombre alterno para un huso horario (clase) |
| (C++20) |
Excepción lanzada para reportar que un tiempo local no existe. (clase) |
| (C++20) |
Excepción lanzada para informar que un tiempo local es ambiguo. (clase) |
[editar] E/S de chrono
| Definido en el archivo de encabezado
<chrono> | |
| Definido en el espacio de nombres
std::chrono | |
| (C++20) |
Analiza un objeto chrono a partir de un flujo (plantilla de función) |
[editar] Biblioteca de C de fecha y hora
También se proporcionan las funciones de fecha y hora estilo C, tales como std::time_t, std::difftime, y CLOCKS_PER_SEC.
[editar] Ejemplo
Este ejemplo despliega información acerca del tiempo de ejecución de una llamada a función:
#include <iostream> #include <chrono> long fibonacci(unsigned n) { if (n < 2) return n; return fibonacci(n-1) + fibonacci(n-2); } int main() { auto start = std::chrono::steady_clock::now(); std::cout << "f(42) = " << fibonacci(42) << '\n'; auto end = std::chrono::steady_clock::now(); std::chrono::duration<double> elapsed_seconds = end-start; std::cout << "tiempo transcurrido: " << elapsed_seconds.count() << "s\n"; }
Posible salida:
f(42) = 267914296 tiempo transcurrido: 1.88232s

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
