Langage :
VB6
Date ajout :
30/11/2007
Posté par
Proger
[
Liste]
DateMAJ :
30/11/2007
Function HMS(ByVal s As Long) As String
'avec -1 < s < 360000
Dim j As Long, h As Long, m As Long
Dim osB(1 To 8) As Byte
osB(3) = 58 ' ":"
osB(6) = 58
m = s \ 60
s = s - m * 60
h = m \ 60
m = m - h * 60
j = s \ 10
osB(8) = 48 + (s - j * 10)
osB(7) = 48 + j
j = m \ 10
osB(5) = 48 + (m - j * 10)
osB(4) = 48 + j
j = h \ 10
osB(2) = 48 + (h - j * 10)
osB(1) = 48 + j
HMS = StrConv(osB(), vbUnicode)
End Function
Remarque :
Version avec secondes uniquement (soit millisecondes \ 1000)
Algo brut, entre 4 et 8 fois plus rapide qu'avec l'intervention de Format$(), CDate() ou API, sous VB6 (IDE ou compilé)
Combinaisons de shl/sar quand compilé, pas de idiv.