ctime

En este ejemplo veremos a ctime en acción, usando el siguiente listado:

gmtime_ctime_listadoAl compilarlo y ejecutarlo tenemos:

gmtime_ctime2Veamos como funciona:

El programa ctime.c llama a time para obtener un valor horario de bajos y permite que ctime realice todo el trabajo duro, convirtiéndolo en una cadena legible, que mostrará después.

gmtime_ctime_1Para conseguir un mayor control en relación al formato exacto de las cadenas de hora y fecha, Linux y los sistemas modernos del estilo UNIX proporcionan una función strftime. Es como sprintf para las fechas y las horas y funciona de un modo parecido:

gmtime_strftimeLa función strftime modifica la hora y la fecha representada por la estructura tm que señala timeptr

gmtime_strftime_1y coloca el resultado en la cadena s.

gmtime_strftime_2Esta cadena contiene (al menos) maxsize caracteres de largo.

gmtime_strftime_3La cadena format se usa para controlar los caracteres escritos en la cadena. Al igual que printf, contiene caracteres ordinarios que se transferirán a la cadena y a los especificadores de conversión para formatear los elementos de la fecha y la hora.

gmtime_strftime_4Los especificadores de conversión son, entre otros:

gmtime_tablaDe manera que la fecha normal que proporciona el programa date se corresponde con una cadena de formato strftime de:

«%a %b %H:%M:%S %Y«

Para leer mejor las fechas, puede usar la función strptime, que adopta una cadena que representa una fecha y una hora y crea una estructura tm que representa la misma fecha y la misma hora:

strptime_1La cadena format se construye exactamente igual que la cadena format para strftime. strptime actúa de un modo similar a sscanf ya que escanea en busca de campos identificables, y los escribe en variables. Sin embargo los especificadores de conversión para strptime son un poco más informales que los de strftime porque strptime acepta tanto los nombres abreviados como los completos para los días y los meses. Cualquier representación se corresponderá con un especificador %a en strptime los concibe como opcionales.

strptime envía un indicador del carácter que sigue al último carácter consumido en el proceso de conversión. Si se encuentra con caracteres que no se pueden convertir, el proceso simplemente se detiene en ese punto. El programa solicitante tiene que comprobar que se ha consumido parte suficiente de la cadena transmitida para asegurar que se han escrito valores con sentido a la estructura tm.

atras

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.