Milliseconde en wk day hr min sec
Publié : jeu. 09/mars/2023 16:25
Convertir les millisecondes en wk day hr min sec. C'est l'objectif de cette procédure.
Il y a t'il un moyen de l'améliorer ? D'avance merci 
P.S. Cette procédure fonctionne avec un temps d'au moins 1 seconde (1000 millisecondes)
Code : Tout sélectionner
Procedure.s MsToTime(NbMs)
Protected weeks, days, hours, minutes, seconds
Protected divisor, remainder
Protected duration$ = ""
Protected NbSeconds = NbMs/1000
; Calcul
divisor = 7 * 24 * 60 * 60 ; seconds in a week
weeks = NbSeconds / divisor
remainder = NbSeconds % divisor
divisor / 7 ; seconds in a day
days = remainder / divisor
remainder % divisor
divisor / 24 ; seconds in an hour
hours = remainder / divisor
remainder % divisor
divisor / 60 ; seconds in a minute
minutes = remainder / divisor
seconds = remainder % divisor
; Mise en forme du résultat
If weeks > 0
duration$ + Str(weeks) + " wk, "
EndIf
If days > 0
duration$ + Str(days) + " day, "
EndIf
If hours > 0
duration$ + Str(hours) + " hr, "
EndIf
If minutes > 0
duration$ + Str(minutes) + " min, "
EndIf
If seconds > 0
duration$ + Str(seconds) + " sec"
EndIf
If Right(duration$, 2) = ", "
duration$ = Mid(duration$, 0, Len(duration$) - 2)
EndIf
ProcedureReturn duration$
EndProcedure
Debug MsToTime(182308)

