C++ Fecha y hora
La biblioteca estándar de C++ no proporciona un tipo de fecha adecuado. C++ hereda las estructuras y funciones para la manipulación de fecha y hora de C. Para acceder a las funciones y estructuras relacionadas con la fecha y la hora, debe incluir el archivo de encabezado
Hay cuatro tipos relacionados con el tiempo:clock_t, time_t, size_t y tm . Los tipos - clock_t, size_t y time_t son capaces de representar la hora y la fecha del sistema como algún tipo de número entero.
El tipo de estructura tm contiene la fecha y la hora en forma de una estructura C que tiene los siguientes elementos −
struct tm { int tm_sec; // seconds of minutes from 0 to 61 int tm_min; // minutes of hour from 0 to 59 int tm_hour; // hours of day from 0 to 24 int tm_mday; // day of month from 1 to 31 int tm_mon; // month of year from 0 to 11 int tm_year; // year since 1900 int tm_wday; // days since sunday int tm_yday; // days since January 1st int tm_isdst; // hours of daylight savings time }
Las siguientes son las funciones importantes que usamos mientras trabajamos con fecha y hora en C o C++. Todas estas funciones son parte de la biblioteca estándar de C y C++ y puede verificar sus detalles utilizando la referencia a la biblioteca estándar de C++ que se proporciona a continuación.
Sr.No | Función y Propósito |
---|---|
1 | tiempo_t tiempo(tiempo_t *tiempo); Esto devuelve la hora actual del calendario del sistema en número de segundos transcurridos desde el 1 de enero de 1970. Si el sistema no tiene hora, se devuelve .1. |
2 | char *ctime(const time_t *time); Esto devuelve un puntero a una cadena de la forma día mes año horas:minutos:segundos año\n\0 . |
3 | estructura tm *localtime(const time_t *time); Esto devuelve un puntero a tm estructura que representa la hora local. |
4 | clock_t clock(void); Esto devuelve un valor que se aproxima a la cantidad de tiempo que se ha estado ejecutando el programa de llamada. Se devuelve un valor de .1 si la hora no está disponible. |
5 | char * asctime (const struct tm * time); Esto devuelve un puntero a una cadena que contiene la información almacenada en la estructura a la que apunta la hora convertida en el formato:día mes fecha horas:minutos:segundos año\n\0 |
6 | estructura tm *gmtime(const time_t *time); Esto devuelve un puntero a la hora en forma de estructura tm. La hora se representa en la hora universal coordinada (UTC), que es esencialmente la hora del meridiano de Greenwich (GMT). |
7 | time_t mktime(struct tm *time); Esto devuelve el equivalente en tiempo de calendario del tiempo que se encuentra en la estructura a la que apunta time. |
8 | tiempo de diferencia doble ( time_t time2, time_t time1 ); Esta función calcula la diferencia en segundos entre el tiempo 1 y el tiempo 2. |
9 | tamaño_t strftime(); Esta función se puede utilizar para formatear la fecha y la hora en un formato específico. |
Fecha y hora actuales
Suponga que desea recuperar la fecha y hora actual del sistema, ya sea como hora local o como hora universal coordinada (UTC). El siguiente es el ejemplo para lograr lo mismo −
Demostración en vivo#include <iostream> #include <ctime> using namespace std; int main() { // current date/time based on current system time_t now = time(0); // convert now to string form char* dt = ctime(&now); cout << "The local date and time is: " << dt << endl; // convert now to tm struct for UTC tm *gmtm = gmtime(&now); dt = asctime(gmtm); cout << "The UTC date and time is:"<< dt << endl; }
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado −
The local date and time is: Sat Jan 8 20:07:41 2011 The UTC date and time is:Sun Jan 9 03:07:41 2011
Dar formato a la hora usando struct tm
El tm La estructura es muy importante al trabajar con fecha y hora en C o C++. Esta estructura contiene la fecha y la hora en forma de estructura C, como se mencionó anteriormente. La mayoría de las veces, las funciones relacionadas utilizan la estructura tm. El siguiente es un ejemplo que hace uso de varias funciones relacionadas con la fecha y la hora y la estructura tm −
Al usar la estructura en este capítulo, asumo que tiene una comprensión básica de la estructura C y cómo acceder a los miembros de la estructura usando la flecha -> operador.
Demostración en vivo#include <iostream> #include <ctime> using namespace std; int main() { // current date/time based on current system time_t now = time(0); cout << "Number of sec since January 1,1970 is:: " << now << endl; tm *ltm = localtime(&now); // print various components of tm structure. cout << "Year:" << 1900 + ltm->tm_year<<endl; cout << "Month: "<< 1 + ltm->tm_mon<< endl; cout << "Day: "<< ltm->tm_mday << endl; cout << "Time: "<< 5+ltm->tm_hour << ":"; cout << 30+ltm->tm_min << ":"; cout << ltm->tm_sec << endl; }
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado −
Number of sec since January 1,1970 is:: 1588485717 Year:2020 Month: 5 Day: 3 Time: 11:31:57
Lenguaje C
- Cálculos de voltaje y corriente
- Variables, literales y constantes de C++
- Clases y objetos de C++
- Gestión de memoria C++:nuevo y eliminar
- Herencia pública, protegida y privada de C++
- Función amiga de C++ y Clases amigas
- ¿Cómo obtener la fecha y hora actuales en Python?
- Estructuras y clases en C ++
- Sobrecarga de C++ (operador y función)
- Archivos y flujos de C++
- Java 8 - Nueva API de fecha/hora