Conversion nombre décimal >> nombre de type heure

Messages postés
1
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
2 novembre 2002
-
Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
-
Hello,

Je viens de découvrir avec plaisir ce site, et j'espère y trouver la solution à mon problème.

Je souhaite convertir un nombre décimal du type "partie entière.partie décimale" en un nombre de type heure "hh.mmss".

Sachant déjà que "hh=partie entière", j'ai quelques difficultés pour la conversion de la partie décimale en "mmss" avec la plus grande précision possible.

Le source qui suit ne semble pas suffisant :

Function Décimal_Heures(ByVal décimal As Double) As Double

Dim degrés As Long
Dim secondes As Double
Dim minutes As Long
Dim tmp As Double

'décimal = Round(décimal, 8)
degrés = Fix(décimal)
tmp = CDbl(3600) * (décimal - degrés)
minutes = Fix(tmp / 60)
secondes = tmp Mod 60

Décimal_Heures = degrés + minutes / 100 + secondes / 10000

End Function

Merci d'avance pour votre aide.
Je suis preneur d'une solution qui marche avec des centièmes ou millièmes de secondes.

:)

1 réponse

Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
10
C'est le "Mod" qui renvoie un entier d'où pas de fraction de seconde

Remplace simplement
Dim minutes As Long

minutes = Fix(tmp / 60)
secondes = tmp Mod 60

par

Dim minutes As Integer '(il y en a moins de 65535 !)

minutes = tmp \ 60
secondes = tmp - 60 * minutes