Programación General > C/C++
Dar formato dd:hh:mm:ss a una cadena
(1/1)
ripito:
Hola grupo,
Desde un fichero extraigo una cadena que representan a segundos. El problema es que quiero convertir esa cadena del tipo "3245.4" al formato dd hh:mm:ss y no tengo ni idea de como hacerlo.
Googleando he encontrado codigo pero no se por donde pillarlo.
--- Código: Text --- time_t tiempo = (time_t) buffer;//time(0); struct tm *tlocal = localtime(&tiempo); char output[128]; strftime(output,128,"%d %H:%M:%S",tlocal); printf("%sn",output);
ripito:
Espero que me puedan echar un cable.
Saludos y gracias!
locazopro:
mira, te doy un pequeño ejemplo del uso de time.h :
--- Código: C ---#include <stdio.h>#include <time.h> int main(){ time_t ahora; /*Es un tipo que representa el tiempo*/ struct tm *ts; /*struct que 'separa' el tiempo representado en formato condensado*/ char output[128]; ahora = time(NULL); /*obtengo el tiempo actual*/ ts = localtime(&ahora); /*localtime transforma el tiempo condensado entregado en time en un struct tm */ strftime(output,128,"%d %H:%M:%S",ts); /*guardo en output el tiempo de ts con un formato especial (dd hh:mm:ss)*/ printf("%sn",output); return 0; }
por ejemplo en mi caso, la salida del programa fue: 17 15:16:48
espero que te halla aclarado un poco el panorama. Consulta la web de ConClase .net , en la sección librerías a una explicación detallada de la librería time y de sus funciones como también estructuras.
Saludos!
ripito:
Al final desisti y lo hice "a pedal" :hitcomp:
--- Código: Text --- tiempo = atof(buffer); dias = tiempo / DIA; horas = ((int)tiempo % DIA) / HORA; minutos = (((int)tiempo % DIA) % HORA) / MINUTO; segundos= ((((int)tiempo % DIA) % HORA)) % MINUTO; printf("Tiempo desde el arranque del sistema: %02i:%02i:%02i:%02in", dias,horas, minutos, segundos);
Muchas gracias por todo!!
Navegación
Ir a la versión completa