[C con Clase] problema con el formato de la funcion strftime(output,128,"%d/%m/%y %H:%M:%S",tlocal);

Steven Davidson srd4121 en njit.edu
Sab Mar 31 20:20:34 CEST 2012


Hola Albert,

On 3/31/2012 12:34 PM, Albert Montolio wrote:
> Hola, queria obtener la fecha en formato de enteros para poderlas
> ordenar entre si.
> puedo obtener las fechas cuando arranco el programa con el siguiente
> codigo:
>
> time_t tiempo = time(0);
>          struct tm *tlocal = localtime(&tiempo);
>          char output[128];
>          strftime(output,128,"%d/%m/%y %H:%M:%S",tlocal);
>          printf("%s\n",output);
>
> pero esto es una cadena de caracteres, por ejemplo 12/05/06 14:13:01,
> y yo lo que quiero es 20120506 para poder ordenar cronologicamente.
>
> alguien sabe como obtener estos enteros que necesito a partir de la
> cadena tlocal?
>

Puedes usar la función 'strftime()' junto con el formato que quieres y 
luego convertir la cadena a un entero con 'atoi()' o 'atol()'.

La otra opción es "construir" el entero usando aritmética para "colocar" 
cada entero en su grupo de dígitos que deseas. Por ejemplo,

unsigned long int ulFecha;

ulFecha = 10000*(1900 + tlocal->tm_year) + 100*(1 + tlocal->tm_mon) + 
tlocal->tm_mday;


Espero que esto te ayude.

Steven





Más información sobre la lista de distribución Cconclase