/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

time_t a char

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
v4r3t



Registrado: 06 Mar 2007
Mensajes: 46

MensajePublicado: 28/09/2007 12:49 pm
Título: time_t a char

¿Cómo puedo convertir un time(NULL) en una cadena?
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3841
Ubicación: Mexico

MensajePublicado: 28/09/2007 3:19 pm
Título:

La forma mas flexible de obtener una cadena con la representacion de la fecha y/o hora actual es mediante la funcion strftime (prototipo en time.h), por ejemplo:
Código:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define LONG_CADENA 128

int main(void)
{
   time_t t1;
   struct tm *t2;
   char cadena[LONG_CADENA];
   
   /* 1) Obtener la fecha actual ('time_t') */
   if ((t1 = time(NULL)) == (time_t) -1)
      return EXIT_FAILURE;
   
   /* 2) Obtener la fecha actual ('struct tm *') */
   t2 = localtime(&t1);
   
   /* Imprimir la fecha "manualmente" mediante printf */
   printf("%d/", t2->tm_year + 1900);
   printf("%02d/", t2->tm_mon + 1);
   printf("%02d\n", t2->tm_mday);
   
   /* Imprimir la fecha mediante strftime */
   strftime(cadena, LONG_CADENA, "%Y/%m/%d", t2);
   printf("%s\n", cadena);
   
   return EXIT_SUCCESS;
}



Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
v4r3t



Registrado: 06 Mar 2007
Mensajes: 46

MensajePublicado: 28/09/2007 3:57 pm
Título:

En realidad lo que quiero es que me pase el 119102... a una cadena..."119102..."
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3841
Ubicación: Mexico

MensajePublicado: 28/09/2007 4:09 pm
Título:

Si te entiendo correctamente lo que quieres hacer es simplemente tomar el valor de retorno (de tipo time_t) de la funcion time y convertirlo en una cadena de texto, ¿Correcto?

Mmm ... un problema es que el estandar de C solo indica que el tipo time_t es un tipo aritmetico, en buen cristiano bien puede ser un numero entero o tambien puede ser un numero de punto flotante. En este caso la unica solucion que se me ocurre es que revises la documentacion de tu compilador para conocer el tipo exacto (equivalente a time_t).

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com