Conversion nombre décimal >> nombre de type heure

pab78140 Messages postés 1 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 2 novembre 2002 - 2 nov. 2002 à 12:06
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 - 2 nov. 2002 à 19:03
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

cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
2 nov. 2002 à 19:03
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
0
Rejoignez-nous