Conversion d'un temps en secondes au format hh:mm:ss

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 295 fois - Téléchargée 63 fois

Contenu du snippet

Ce code est une version largement plus facile à comprendre et plus court que celui CodeCodeCodac ;-)
Attention, le nombre de secondes doit être inférieur à 86400 (=1 jour) et ne doit pas être décimal(pas de virgule).
De plus, le nombre de secondes pris en compte dans une journée est 86400 et pas 86459,178082191...(jour naturel).

Source / Exemple :


Dim TempsTotal as long     'TempsTotal est le temps en secondes
Dim Heures as Integer
Dim Minutes as Integer
Dim Secondes as Integer

Sub Conversion(TempsTotal)
	Heures = Int(TempsTotal / 3600)
	Minutes = Int((TempsTotal - 3600 * Heure) / 60)
	Secondes = TempsTotal - 3600 * Heures - 60 * Minutes
	Msgbox (Format(Str(Heures + ":" + Minutes + ":" + Secondes))) 'là, on a le temps formaté hh:mm:ss
	'Format sert à afficher 2 chiffres pour les heures, les minutes et les secondes
	'Exemple: avec Format: 08:05:23
	'         sans Format: 8:5:23
End Sub

'La même formule en une seule ligne (pas la peine de déclarer les variables Heures, Minutes et Secondes):
'MsgBox (Format(Str(Int(TempsTotal / 3600)) + ":" + Str(Int((TempsTotal - 3600 * (Int(TempsTotal / 3600))) / 60)) + ":" + Str(TempsTotal - 3600 * (Int(TempsTotal / 3600)) - 60 * (Int((TempsTotal - 3600 * (Int(TempsTotal / 3600))) / 60))), "ttttt"))

Conclusion :


Si ce code comportait des bugs, merci de me le signaler

A voir également

Ajouter un commentaire

Commentaires

Ca devient intéressant Format
...
enfin surtout pour tout ceux du concours qui font des pendules Digital à tout bout de champs
Là j'm'incline bien bas!! Jé chercher partt à faire la même chose ke toi, hé bin, ouais, ce ke tu méclaires sacrément sur mes erreurs!!! - Respect -
Tu veux pô être mon gourou, je dékone, ps envie d'm'adhérer à 1 secte!!!... 8))
Merci beaucoup c ce que je cherchais! Cool! Sympas!
philpaul
Messages postés
2
Date d'inscription
lundi 18 juillet 2005
Statut
Membre
Dernière intervention
19 juillet 2005
-
si quelqu'un pourrai me donner le code pour faire l'inverse, passer
d'un temps minute:seconde pour avoir le total de seconde d'une manière aussi simple que celle là, ç'a m'aiderai

ps: je suis un néophyte
Proger
Messages postés
248
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
19 décembre 2008
-
L'inverse, pour Philpaul...
Dim Buf() As String
Dim s As Long
Buf = Split(tempsHMS$,":")
s = CLng(Buf(0)*3600 + CLng(Buf(1))*60 + CLng(Buf(2))

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.