Calcular tiempo estimado de un proceso
Algunos programas cuando se hace una tarea que necesita tiempo de espera, como los programas antivirus, desfragmentados, compresores, descargas y subidas masivas, envío de emails con archivos adjuntos, muestran una barra de progreso y el tiempo que lleva (elapsed time) y el tiempo que aún queda para finalizar (estimated time), a veces el tiempo que se calcula no es muy ajustado depende de los factores del proceso
Calcular el tiempo transcurrido
para calcular el tiempo transcurrido de un proceso cualquiera comentado arriba, primero de todo debemos capturar el tiempo inicial de la tarea y cuando queramos actualizar el contador de tiempo, se obtiene el tiempo actual y con una simple resta tiempo_actual – tiempo_inicial obtendremos el tiempo transcurrido
Calcular el tiempo estimado
Para calcular el tiempo estimado de un proceso etc.., tenemos que desglosar la tarea en partes, y por cada parte calcular el tiempo que ha transcurrido y para obtener el tiempo estimado multiplicamos el tiempo transcurrido por las partes restantes
ejemplo “calcular tiempo estimado de copiado de archivos en disco” en pseudo código
tiempo_inicial = ahora();
archivos = ‘50 archivos de 1024 bytes’
contador = 0
bucle de 1 hasta 50
incrementar(contador)
tiempo_inicial_copiado = ahora()
copiar_archivo_en nueva ubicacion
tiempo_final_copiado = ahora()
tiempo_restante = (tiempo_final_copiado – tiempo_inicial_copiado) x (50 – contador)
tiempo_transcurrido = tiempo_final_copiado – tiempo_inicial
actualizar contador de tiempo
fin bucle
Para obtener el tiempo restante de una descarga de archivo de internet se debería calcular por bloques de descarga por ejemplo lo que se tarda en descargar 1024 bytes que sería un 1 Kb sabiendo eso y que el archivo pese 1 Megabyte, ya lo tendríamos
Para obtener el tiempo restante de una transacción de base de datos, copia de registros, eliminación, migración etc.. Debemos calcular lo que tarda por un registro o si es muy enorme por bloques de registros
como puedes ver el tiempo transcurrido no es exacto depende de factores del mismo proceso, el siguiente ejemplo hecho en delphi sirve para calcular un tiempo transcurrido que se puede adaptar, la actualización del tiempo lo muestra en horas minutos y segundos
var StartTime,EndTime,ElapsedTime,EstimatedTime: Dword; actual_progress,total_progress,i:integer; Estimated_hours:dword;Estimated_Minutes:dword;Estimated_seconds:dword; Informacion:string; begin Timer1.Enabled := false; Actual_progress := 0; total_progress := 10; for i:=Actual_progress to Total_Progress do begin StartTime := GetTickCount(); //processo a realizar EndTime := GetTickCount(); ElapsedTime := EndTime-StartTime; TranscursTime := ElapsedTime * (total_progress - i); //calculo de horas minutos y segundos Estimated_hours := (ElapsedTime div (3600 * 999)) mod 24; Estimated_Minutes := (ElapsedTime div (60 * 999)) mod 60; Estimated_Seconds := (ElapsedTime div 999) mod 60; Informacion := 'Tiempo estimado: ' + inttostr(Estimated_hours) + ':' + inttostr(Estimated_Minutes) + ':' + inttostr(Estimated_Seconds); label1.Caption := Informacion; end; end;
frases de busqueda interna: calcular tiempo estimado de un proceso en programación, calcular tiempo estimado de un proceso en delphi, calcular tiempo restante en programación, calcular tiempo restante en delphi, calcular tiempo transcurrido en programación, calcular tiempo transcurrido en delphi, calcular tiempo que falta en programación, calcular tiempo que falta en delphi, obtener tiempo restante de un proceso en delphi, obtener tiempo restante de una rutina en delphi, obtener tiempo restante de una tarea en delphi, calcular tiempo aproximado de un proceso, si alguna vez necesitas calcular e actualizar en tiempo real (mientras se esta realizando el proceso) de una tarea, copiado de archivos, calculos matematicos, descargar de internet,copiado de registros de una base de datos, etc. y quieres mostrar el tiempo estimado e restante de un proceso, es decir el tiempo que aún queda para finalizar la tarea.
