[Func] Format Time milisecond

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
20100
Niveau 3
Niveau 3
Messages : 43
Enregistré le : ven. 03 juil. 2009 11:39
Status : Hors ligne

[Func] Format Time milisecond

#1

Message par 20100 »

Petite fonction sans prétention qui permet de formater un integer représentant une durée en milisecondes en une string correspondante à cette durée mais convertit en heure, minutes et secondes.

Code : Tout sélectionner

;===========================================================================================================
; Description : Formate le temps passe en miliseconde en heures, minutes, secondes
; Syntaxe     : _format_time($time_milisecond)
; Parametere  : $time_milisecond = Temps en milisecondes à formater
; Return      : String
;===========================================================================================================
Func _format_time($time_milisecond)
    
    Local $time_milisecond_formater
    Local $seconde_arrondi
    Local $minute
    Local $seconde
    Local $heure
    
    If( $time_milisecond < 60000 ) Then
        $time_milisecond_formater = Round( ($time_milisecond/1000), 2 ) & " secondes"
    ElseIf( ($time_milisecond >= 60000) AND ($time_milisecond < 3600000) ) Then
        $seconde_arrondi = Int( $time_milisecond / 1000 )
        $minute = Int( $seconde_arrondi / 60)
        $seconde = Round( (($time_milisecond / 1000) - $minute*60), 0 )
        $time_milisecond_formater = $minute & " min " & $seconde & " sec"
    Else
        $seconde_arrondi = Int( $time_milisecond / 1000 )
        $heure = Int( $seconde_arrondi / 3600)
        $minute = Int( (($seconde_arrondi - $heure*3600) / 60) )
        $seconde = Round( (($time_milisecond / 1000) - $heure*3600 - $minute*60), 0)
        $time_milisecond_formater = $heure&"h " &$minute & "m " & $seconde & "s"
    EndIf
    
    Return $time_milisecond_formater
EndFunc
;===========================================================================================================

; Exemple
MsgBox(0, "Exemple _format_time($time_milisecond)", _ 
           "_format_time(62) = "&_format_time(62)&@CRLF& _ 
          "_format_time(602) = "&_format_time(602)&@CRLF& _ 
         "_format_time(6022) = "&_format_time(6022)&@CRLF& _ 
        "_format_time(60222) = "&_format_time(60222)&@CRLF& _
       "_format_time(602222) = "&_format_time(602222)&@CRLF& _
      "_format_time(6022222) = "&_format_time(6022222)&@CRLF& _
     "_format_time(60222222) = "&_format_time(60222222)&@CRLF& _
    "_format_time(602222222) = "&_format_time(602222222)&@CRLF _
)
Image
J'utilise souvent cette fonction avec la fonction AutoIT TimerDiff pour calculer le temps d'exécution d'un traitement de la manière suivante :

Code : Tout sélectionner

Local $duree_traitement_debut = TimerInit() ; Timer pour calculer la durée du traitement
; Simulation d'un traitement dont on souhaite calculer le temps d'execution
Sleep(512)
Local $duree_traitement = _format_time(TimerDiff($duree_traitement_debut))
MsgBox(0, "Exemple _format_time($time_milisecond)", "Le traitement a mis "&$duree_traitement&" pour s'executer")
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Func] Format Time milisecond

#2

Message par Tlem »

Merci.
Il vous est aussi possible d'utiliser la fonction : _TicksToTime (voir l'exemple dans le fichier d'aide). ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre