Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Borluck en 7 Mayo 2013, 18:25 pm



Título: Time.h [HELP]
Publicado por: Borluck en 7 Mayo 2013, 18:25 pm
Hola a todos compañeros!

Bueno...como siempre me surgen dudas y esta vez está referida al uso de la función time().

Quisiera poder obtener la hora del sistema y almacenarla en un archivo .txt pero cuando la intento sacar me devuelve un número ENORME que para mí no tiene sentido alguno.

Les agradezco la participación y la ayuda. Buen día!   :P ;D


Título: Re: Time.h [HELP]
Publicado por: mr.blood en 7 Mayo 2013, 18:58 pm
Definicion de time()
time_t time(time_t *tiempoPtr);

No puedes leerla directamente, debes recogerla en la estructura para luego leer cada apartado ;).
Tienes muchos ejemplos en la red buscando mismamente como time_t te saldran.

Sa1uDoS


Título: Re: Time.h [HELP]
Publicado por: leosansan en 7 Mayo 2013, 19:47 pm
Hola a todos compañeros!

Bueno...como siempre me surgen dudas y esta vez está referida al uso de la función time().

Quisiera poder obtener la hora del sistema y almacenarla en un archivo .txt pero cuando la intento sacar me devuelve un número ENORME que para mí no tiene sentido alguno.


Para que conste, lo primero que deberías es colgar el código o trozo donde podamos averiguar el posible error. No somos adivinos.

Para que no te vuelvas loco buscando ejemplos, te dejo un cronómetro simple  De ahí podrás sacar conclusiones en cuanto a las variables para guardar el tiempo:


Código
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <windows.h>
  4. struct tm *tiempo;
  5. time_t t;
  6. void cronometro(void);
  7. int main(void)
  8. {
  9.   cronometro();
  10.   return 0;
  11. }
  12.  
  13. void cronometro(void)
  14. {
  15.    int hora,minuto,limite,segundo;
  16.    t=time(NULL);
  17.    tiempo = localtime(&t);
  18.    limite=tiempo->tm_min+2;
  19.    while(1)
  20.    {
  21.        Sleep (1000);
  22.        t=time(NULL);
  23.        tiempo = localtime(&t);
  24.        hora=tiempo->tm_hour;
  25.        minuto=tiempo->tm_min;
  26.        segundo=tiempo->tm_sec;
  27.        printf("%d:%d:%d\r",hora,minuto,segundo);
  28.    }
  29. }
  30.  

Saluditos!. .....  (http://st.forocoches.com/foro/images/smilies/simba1.gif)


Título: Re: Time.h [HELP]
Publicado por: rir3760 en 11 Mayo 2013, 05:38 am
Quisiera poder obtener la hora del sistema y almacenarla en un archivo .txt
Si solo necesitas una cadena con la hora y fecha actual puedes utilizar la función time para obtener esta como un valor de tipo time_t y a continuación la función ctime para generar la cadena. Mas o menos así:
Código
  1. time_t t;
  2.  
  3. /* ... */
  4.  
  5. time(&t);
  6. fprintf(stdout, "%s", ctime(&t));
Por supuesto se debe, para empezar, sustituir stdout en la llamada a fprintf por el stream correspondiente.

----

O si lo que quieres es procesar de alguna forma los campos (minuto, hora, etc.) puedes hacerlo manualmente (siguiendo el ejemplo de leosan) o utilizando la función strftime (similar a sprintf). Un ejemplo:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define LONG_CADENA 128
  6.  
  7. int main(void)
  8. {
  9.   time_t t;
  10.   struct tm *u;
  11.   char cadena[LONG_CADENA];
  12.  
  13.   /* 1) Obtener la fecha actual ('time_t') */
  14.   if ((t = time(NULL)) == (time_t) -1)
  15.      return EXIT_FAILURE;
  16.  
  17.   /* 2) Obtener la fecha actual ('struct tm *') */
  18.   u = localtime(&t);
  19.  
  20.   /* Imprimir la fecha manualmente mediante printf */
  21.   printf("%d/", u->tm_year + 1900);
  22.   printf("%02d/", u->tm_mon + 1);
  23.   printf("%02d\n", u->tm_mday);
  24.  
  25.   /* Imprimir la fecha mediante strftime */
  26.   strftime(cadena, LONG_CADENA, "%Y/%m/%d", u);
  27.   printf("%s\n", cadena);
  28.  
  29.   return EXIT_SUCCESS;
  30. }

Un saludo