Jump to content
Sign in to follow this  
rjunior

Contador de Tempo

Recommended Posts

Boa tarde! 

Gostaria de fazer um "Contador de Tempo"  no meu código. Ou seja, informar ao final da execução do código, o tempo médio para atualização de cada registro. Como conheço bem pouco de Autoit, não estou conseguindo fazer. O que tentei foi o código abaixo, mas retorna apenas zero:

 

#include <Date.au3>

Local $Hora_Ini
Local $Tempo
Local $Contador

$Hora_Ini = _NowTime()

;Código do programa(apenas um exemplo)
$Contador = 5
Sleep(10000)

$Tempo = (_NowTime() - $Hora_Ini) / $Contador

MsgBox(0,"", "O tempo decorrido por unidade foi de: " & $Tempo); Mostrar o tempo no formato de hora(hh:mm:ss)
 

Se alguém puder me ajudar, agradeço.

Share this post


Link to post
Share on other sites

Olá rjunior.

   O que vc está procurando são as funções Timer (olhe no help)

_TimerInit() = inicia a contagem de tempo retornando um valor inicial

_TimerDiff() = faz o cálculo do intervalo decorrido entre o tempo atual e o inicial armazenado do _TimerInit

Como o resultado será em milisegundos, para obter em formato h:m:s será necessário uma pequena conversão. Fica minha sugestão:

#include <Date.au3>
#include <Timers.au3>

Local $nInicio = _Timer_Init()
Sleep(Random(1000, 5000, 1)) ; aguarda entre 1 e 5s
Local $nTempoDecorrido = _Timer_Diff($nInicio)
ConsoleWrite(MS2HMS($nTempoDecorrido) & @CRLF)

; #FUNCTION# ====================================================================================================================
; Name ..........: MS2HMS
; Description ...: Converte milisegundos para o formato H:M:S
; Syntax ........: MS2HMS($nTempoMS)
; Parameters ....: $nTempoMS   = [Number] Tempo em milisegundos
; Return values .: Sucesso     = [String] Tempo no formato HH:MM:SS
;                  Falha       = [String] "" (vazia) e seta @error
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: MS2HMS(12345678) ; 03:25:45
; ===============================================================================================================================
Func MS2HMS($nTempoMS)
   If not IsNumber($nTempoMS) Then Return SetError(1, 0, "")
   Local $nHoras, $nMinutos, $nSegundos
   _TicksToTime($nTempoMS, $nHoras, $nMinutos, $nSegundos)
   If @error Then Return SetError(2, 0, "")
   Return SetError(0, 0, StringFormat("%02d:%02d:%02d", $nHoras, $nMinutos, $nSegundos))
EndFunc   ;==>MS2HMS

 

Share this post


Link to post
Share on other sites
7 hours ago, Manimal said:

Olá rjunior.

   O que vc está procurando são as funções Timer (olhe no help)

_TimerInit() = inicia a contagem de tempo retornando um valor inicial

_TimerDiff() = faz o cálculo do intervalo decorrido entre o tempo atual e o inicial armazenado do _TimerInit

Como o resultado será em milisegundos, para obter em formato h:m:s será necessário uma pequena conversão. Fica minha sugestão:

#include <Date.au3>
#include <Timers.au3>

Local $nInicio = _Timer_Init()
Sleep(Random(1000, 5000, 1)) ; aguarda entre 1 e 5s
Local $nTempoDecorrido = _Timer_Diff($nInicio)
ConsoleWrite(MS2HMS($nTempoDecorrido) & @CRLF)

; #FUNCTION# ====================================================================================================================
; Name ..........: MS2HMS
; Description ...: Converte milisegundos para o formato H:M:S
; Syntax ........: MS2HMS($nTempoMS)
; Parameters ....: $nTempoMS   = [Number] Tempo em milisegundos
; Return values .: Sucesso     = [String] Tempo no formato HH:MM:SS
;                  Falha       = [String] "" (vazia) e seta @error
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: MS2HMS(12345678) ; 03:25:45
; ===============================================================================================================================
Func MS2HMS($nTempoMS)
   If not IsNumber($nTempoMS) Then Return SetError(1, 0, "")
   Local $nHoras, $nMinutos, $nSegundos
   _TicksToTime($nTempoMS, $nHoras, $nMinutos, $nSegundos)
   If @error Then Return SetError(2, 0, "")
   Return SetError(0, 0, StringFormat("%02d:%02d:%02d", $nHoras, $nMinutos, $nSegundos))
EndFunc   ;==>MS2HMS

 

Nossa, eu convertia tudo, dessa forma ficou tudo tão simples.

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×