SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: maikmr en Viernes 10 de Junio de 2005, 08:18

Título: Capturar La Hora Del Sistema
Publicado por: maikmr en Viernes 10 de Junio de 2005, 08:18
Hola compañeros del foro! necesito de una funcion en Cpara capturar la hora del sistema, necesito capturar principalmente los mibnutos, segundos, centecimas, milecimas y nanonesimas de segundo de ser posible.

como siempre, les doy mi agradecimiento de antemano.
Título: Re: Capturar La Hora Del Sistema
Publicado por: pitukilloloco en Sábado 11 de Junio de 2005, 01:46
Aquí está una forma sencilla para capturar la fecha y las horas, minutos y segundos
Código: Text
  1.  
  2. #include <stdio.h>
  3. #include <time.h>
  4. #include <stdlib.h>
  5.  
  6. int main ()
  7. {
  8.   time_t ltime;
  9.   char semana[4], mes[4];
  10.   int dia, hora, minutos, segundos, agno;
  11.     time (&ltime);
  12.     printf( "Fecha y hora: %s", ctime (&ltime));
  13.   sscanf (ctime (&ltime), "%s %s %d %d:%d:%d %d", semana, mes, &dia, &hora, &minutos, &segundos, &agno);
  14.     printf( "Fecha y hora: %s %s %d %d:%d:%d %d\n", semana, mes, dia, hora, minutos, segundos, agno);
  15.   system ("pause");
  16.   return EXIT_SUCCESS;
  17. }
  18.  
  19.  
otra forma de hacerlo
Código: Text
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <sys/timeb.h>
  5. #include <time.h>
  6.  
  7. int main( void )
  8. {
  9.    struct _timeb timebuffer;
  10.    char *timeline;
  11.  
  12.    _ftime( &timebuffer );
  13.    timeline = ctime( & ( timebuffer.time ) );
  14.  
  15.    printf( "The time is %.19s.%hu %s", timeline, timebuffer.millitm, &timeline[20] );
  16.    
  17.    system ("pause");
  18.    return EXIT_SUCCESS;
  19. }
  20.  
  21.  
Título: Re: Capturar La Hora Del Sistema
Publicado por: sruby en Sábado 2 de Julio de 2005, 22:05
Hola.. aqui tienes otra forma de capturar la hora del sistema mediante la interupcion 21/2C.

Asi puedes capturar la hora, minutos, segundos y centesimas

Código: Text
  1.  
  2. #include<stdio.h>
  3. #include<stdio.h>
  4. #include<dos.h>
  5. #include<conio.h>
  6. main(){
  7. union REGS ent, sal&#59;
  8. ent.h.ah = 0x2C&#59;
  9.  
  10. clrscr();
  11. while(1){
  12. gotoxy(2,3);
  13. int86(0x21,&ent,&sal);
  14. printf ("%d : %d : %d : %d",sal.h.ch, sal.h.cl, sal.h.dh, sal.h.dl)&#59;
  15. sleep(1);
  16. }
  17. getch();
  18. }
  19.  
  20.  

Ojala te sirva.
Saludos
Título: Re: Capturar La Hora Del Sistema
Publicado por: Eternal Idol en Sábado 2 de Julio de 2005, 22:15
Esta muy bien pero eso solo funciona en MS-DOS, para Windows tambien se puede usar GetLocalTime.  :whistling:
Título: Re: Capturar La Hora Del Sistema
Publicado por: sruby en Sábado 2 de Julio de 2005, 23:30
Tienes toda la razon.. la postie sin saber si era para DOS, Win.. Linux, lo que sea.
Pero claro, solo funciona en DOS
Título: Re: Capturar La Hora Del Sistema
Publicado por: Eternal Idol en Sábado 2 de Julio de 2005, 23:40
Cita de: "sruby"
Tienes toda la razon.. la postie sin saber si era para DOS, Win.. Linux, lo que sea.
Pero claro, solo funciona en DOS
No esta especificado, bueno en realidad dice C por eso supongo que hay que usar las funciones standard como las que nombro pitukilloloco.

 :hola:
Título: Re: Capturar La Hora Del Sistema
Publicado por: DDCA en Domingo 3 de Julio de 2005, 18:12
Aprovecho este post, para preguntar, si deseo saber en cuantos milisegundos se ejecuta una función, que debo usar ?  :blink: hay alguna función que te puede dar eso o debo hacer la diferencia entre el tiempo inicial y e final, estoy desesperado échenme una mano por favor
Título: Re: Capturar La Hora Del Sistema
Publicado por: Eternal Idol en Domingo 3 de Julio de 2005, 18:27
Cita de: "DDCA"
Aprovecho este post, para preguntar, si deseo saber en cuantos milisegundos se ejecuta una función, que debo usar ?  :blink: hay alguna función que te puede dar eso o debo hacer la diferencia entre el tiempo inicial y e final, estoy desesperado échenme una mano por favor
Podes usar la funcion clock del archivo time.h, en Windows podes usar GetTickCount.  :smartass:

PD. No deberias usar este post sino crear otro.
Título: Re: Capturar La Hora Del Sistema
Publicado por: DDCA en Domingo 3 de Julio de 2005, 18:41
Lo siento  :P  gracias por la rápida respuesta  :D
Título: Re: Capturar La Hora Del Sistema
Publicado por: sruby en Miércoles 6 de Julio de 2005, 01:41
DDCA..

Si quieres un ejemplo de como capturar el tiempo que se ejecuto cierta cantidad de instrucciones.

Código: Text
  1.  
  2. #include <stdio.d>
  3. #include <time.h>
  4.  
  5. main( )
  6. {
  7. long start, stop&#59;
  8.  
  9. start = clock( )&#59;  /* se toma el tiempo de inicio */
  10. sound(1000)&#59;    /* activa un beep de 1000 Hz */
  11. delay(600)&#59;    /* pausa de  600 mS. */
  12. nosound( )&#59;    /* se desactiva el beep */
  13.  
  14. sound(500)&#59;    /* activa un beep de 500 Hz */
  15. sleep(2)&#59;    /* pausa de  2 segundos */
  16. nosound( )&#59;
  17. stop = clock( )&#59;  /* se toma el tiempo final */
  18. printf(“Se ejecuto en %f segundos “,(stop-start) /CLK_TCK)&#59;
  19. }
  20.  
  21.  
  22.  

No olvides dividir el resultado de fin - inicio por la constante CLK_TCK para transformarlo a segundos.

Saludos