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

[0] Índice de Mensajes

Ir a la versión completa