[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