Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Guía Completa de Fecha y Hora en C++

La biblioteca estándar de C++ no proporciona un tipo de fecha apropiado. C++ hereda las estructuras y funciones para manipulación de fecha y hora de C. Para acceder a funciones y estructuras relacionadas con fecha y hora, necesitarías incluir el archivo de encabezado <ctime> en tu programa C++.

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 fecha del sistema como algún tipo de entero.

El tipo de estructura tm mantiene la fecha y hora en forma de una estructura C que tiene los siguientes elementos:

struct tm {
    int tm_sec;   // segundos de minutos de 0 a 61
    int tm_min;   // minutos de hora de 0 a 59
    int tm_hour;  // horas de día de 0 a 24
    int tm_mday;  // día del mes de 1 a 31
    int tm_mon;   // mes de año de 0 a 11
    int tm_year;  // años desde 1900
    int tm_wday;  // días desde domingo
    int tm_yday;  // días desde 1 de enero
    int tm_isdst; // horas de horario de verano
}

Las siguientes son las funciones importantes que usamos al trabajar con fecha y hora en C o C++. Todas estas funciones son parte de la biblioteca estándar de C y C++ y puedes verificar sus detalles usando la referencia de la biblioteca estándar de C++ dada a continuación.

NºFunción y Propósito
1

time_t time(time_t *time);

Esto retorna 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 retorna .1.

2

char *ctime(const time_t *time);

Esto retorna un puntero a una cadena de la forma día mes año horas:minutos:segundos año\n\0.

3

struct tm *localtime(const time_t *time);

Esto retorna un puntero a la estructura tm representando la hora local.

4

clock_t clock(void);

Esto retorna un valor que aproxima la cantidad de tiempo que el programa llamador ha estado ejecutándose. Un valor de .1 se retorna si la hora no está disponible.

5

char *asctime(const struct tm *time);

Esto retorna un puntero a una cadena que contiene la información almacenada en la estructura apuntada por time convertida en la forma: día mes fecha horas:minutos:segundos año\n\0

6

struct tm *gmtime(const time_t *time);

Esto retorna un puntero a la hora en forma de una estructura tm. La hora está representada en Tiempo Universal Coordinado (UTC), que es esencialmente Tiempo Medio de Greenwich (GMT).

7

time_t mktime(struct tm *time);

Esto retorna el equivalente de tiempo de calendario de la hora encontrada en la estructura apuntada por time.

8

double difftime(time_t time2, time_t time1);

Esta función calcula la diferencia en segundos entre time1 y time2.

9

size_t strftime();

Esta función puede usarse para formatear fecha y hora en un formato específico.

Fecha y Hora Actual

Supongamos que quieres recuperar la fecha y hora actual del sistema, ya sea como hora local o como Tiempo Universal Coordinado (UTC). El siguiente es un ejemplo para lograr lo mismo:

#include <iostream>
#include <ctime>
using namespace std;
int main() {
    // fecha/hora actual basada en la hora actual del sistema
    time_t now = time(0);
    // convertir now a forma de cadena
    char* dt = ctime(&now);
    cout << "La fecha y hora local es: " << dt << endl;
    // convertir now a struct tm para UTC
    tm *gmtm = gmtime(&now);
    dt = asctime(gmtm);
    cout << "La fecha y hora UTC es:" << dt << endl;
}

Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:

La fecha y hora local es: Sat Jan 8 20:07:41 2011
La fecha y hora UTC es: Sun Jan 9 03:07:41 2011

Formatear Hora usando struct tm

La estructura tm es muy importante al trabajar con fecha y hora en C o C++. Esta estructura mantiene la fecha y hora en forma de una estructura C como se mencionó anteriormente. La mayoría de las funciones relacionadas con el tiempo hacen uso de la estructura tm. El siguiente es un ejemplo que hace uso de varias funciones relacionadas con fecha y hora y la estructura tm:

Al usar estructura en este capítulo, asumo que tienes comprensión básica sobre estructuras en C y cómo acceder a miembros de estructura usando el operador flecha ->.

#include <iostream>
#include <ctime>
using namespace std;
int main() {
    // fecha/hora actual basada en la hora actual del sistema
    time_t now = time(0);
    cout << "Número de seg desde 1 de enero de 1970 es:: " << now << endl;
    tm *ltm = localtime(&now);
    // imprimir varios componentes de la estructura tm.
    cout << "Año:" << 1900 + ltm->tm_year << endl;
    cout << "Mes: " << 1 + ltm->tm_mon << endl;
    cout << "Día: " << ltm->tm_mday << endl;
    cout << "Hora: " << 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:

Número de seg desde 1 de enero de 1970 es:: 1588485717
Año: 2020
Mes: 5
Día: 3
Hora: 11:31:57

Lenguaje C

  1. Cálculo de voltaje y corriente en circuitos DC reactivos
  2. Estructuras vs Clases en C++: Guía práctica para desarrolladores embebidos
  3. Dominando Variables, Literales y Constantes en C++: Guía Completa
  4. Clases y Objetos en C++: Guía Práctica de Programación Orientada a Objetos
  5. Dominando la gestión de memoria en C++: uso experto de new y delete
  6. Herencia en C++: public, protected y private explicados
  7. Funciones y clases amigas en C++: dominando el control de acceso
  8. Dominando la Sobrecarga en C++: Funciones y Operadores Explicados
  9. Dominando Entrada/Salida de Archivos en C++: Lectura y Escritura con fstream
  10. Obtener la Fecha y Hora Actual en Python: Guía Práctica
  11. Java 8: La Nueva y Robusta API de Fecha y Hora