Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Operaciones de tiempo

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Operaciones de tiempo Responder citando

Wenas otra vez, necesitaría poder calcular el tiempo entre dos puntos determinados, lo que hago es declarar una structura time (librería sos.h) y obtener los dos puntos de tiempo con gettime.

Existe funcion que me devuelva la diferencia entre dos variables de tipo time?


Gracias...
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

ahora estoy en el trabajo, a la noche me conecto desde casa y te la paso
saludos!!!
_________________
Siempre hay que tratar de ser el mejor, pero nunca creerse el mejor (Juan Manuel Fangio)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Hola. Yo utilizo las siguientes funciones para medir tiempos, seguro que te pueden dar una idea sobre lo que preguntas:
Código:
AnsiString TiempoDelProceso(AnsiString proceso, bool inicio) {
   static System::TDateTime instanteAnterior;
   System::TDateTime instanteActual;
   instanteActual = instanteActual.CurrentTime();

   AnsiString s = inicio ? "Inicio" : "Fin";
   s += " del proceso <" + proceso + ">: " + instanteActual.TimeString() + " ";

   if (!inicio)
      s += " (" + TiempoTranscurrido(instanteActual, instanteAnterior) + ")";

   instanteAnterior = instanteActual;

   return s;
}
//---------------------------------------------------------------------------------//
AnsiString TiempoTranscurrido(TDateTime instanteActual, TDateTime instanteAnterior) {
   __int64 milisegundos = MilliSecondsBetween(instanteActual, instanteAnterior)%1000;
   __int64 segundos = SecondsBetween(instanteActual, instanteAnterior);
   __int64 minutos = MinutesBetween(instanteActual, instanteAnterior);
   __int64 horas = HoursBetween(instanteActual, instanteAnterior);

   AnsiString s;

   if (horas)
      s += AnsiString(horas) + "h. ";
   if (minutos)
      s += AnsiString(minutos % 60) + "m. ";
   if (segundos)
      s += AnsiString(segundos % 60) + "s. ";
   if (milisegundos)
      s += AnsiString(milisegundos) + "ms.";

   return s;
}
Creo que basta con incluir las librerías SysUtils.hpp y DateUtils.hpp para que compile.

Las utilizo para escribir el AnsiString que generan en un TRichEdit en el que voy escribiendo ciertos eventos del proceso. Por ejemplo, cuando voy a ejecutar un algoritmo, justo antes de iniciar el algoritmo escribo
Código:
   reLOG_UW->Lines->Add(TiempoDelProceso("Apriori", true));
y justo al terminarlo escribo
Código:
   reLOG_UW->Lines->Add(TiempoDelProceso("Apriori", false));


Ya nos dirás si sacaste algo útil. Suerte.
_________________
Ojos ... no son ojos porque los ves, son ojos porque te miran
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Aqui tienes una forma mas simple si quieres

#include <time.h>

clock_t start,end;

start=clock(); //inicia conteo.

for(;Wink/// ciclo que quieras
{

}

end=clock(); //fin conteo.

Label1->Caption=AnsiString((end-start)/CLK_TCK)+" Seg.";

Saludos!!!!
_________________
Siempre hay que tratar de ser el mejor, pero nunca creerse el mejor (Juan Manuel Fangio)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.