CONVERTISSEUR DE MINUTES EN HEURES

cs_cybercorp Messages postés 44 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 16 août 2009 - 17 sept. 2007 à 16:24
blq Messages postés 97 Date d'inscription vendredi 22 octobre 1999 Statut Membre Dernière intervention 13 juin 2016 - 7 avril 2013 à 18:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44073-convertisseur-de-minutes-en-heures

blq Messages postés 97 Date d'inscription vendredi 22 octobre 1999 Statut Membre Dernière intervention 13 juin 2016 1
7 avril 2013 à 18:45
Error sur l'Index du Splip()
J'ai tapé un peu vde au clavier, il faut utiliser le 0 (Heures) et non le 2 dans le premier Split :

lesMinutes as Integer = (CInt(Split(theTime , ":")(0)) * 60) + CInt(Split(theTime , ":")(1))
blq Messages postés 97 Date d'inscription vendredi 22 octobre 1999 Statut Membre Dernière intervention 13 juin 2016 1
7 avril 2013 à 18:37
Juste histoire de donner un complément, si cela peut aider...

L'utilisation de Substring est simple et rapide, mais implique nécessairement une heure avec 5 caractères, par exemples 1:20 (saisie courante) ou 10:5 (moins courante) ne fonctionnent pas.

Une autre manière de faire et de considérer le caractère séparateur comme obligatoire et de l'utiliser. Ce qui donne cette manière de faire :

theTime as String = "10:37" ou " 10:37", "1:34", "15:55 ", "1:5", "120:15", etc.
lesMinutes as Integer = (CInt(Split(theTime , ":")(2)) * 60) + CInt(Split(theTime , ":")(1))

Le principal avantage est de palier les éventuelles erreurs de saisie :-)

Pour l'inverse, l'exemple de "Cybercorp" peut être complété par un formatage :

Format(Int(lesMinutes / 60), "#00") & ":" & Format(lesMinutes Mod 60, "00")
cs_cybercorp Messages postés 44 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 16 août 2009
17 sept. 2007 à 16:24
Plus simple:
Dim Heure As String = "14:33"
Dim Minutes As Integer
Pour convertire en minutes:
Minutes = (Heure.Substring(0, 2) * 60) + (Heure.Substring(3, 2))

Pour reconvertir en heures
Heure = Int(Minutes / 60) & ":" & Minutes Mod 60

Il est possible ainsi de calculer une durée comme Debut 21h00 Fin 05h00

21h00=1260 Minutes
05h00= 300 Minutes

la différence de temps est:
300-1260-960 auquel il faut rajouter 1440 480 Minutes soit 08H00

Je me suis servi ce ces formules pour calculer des horaires dans lesquels il y avait des horaires de nuit. L'avantage de convertir en minutes, c'est qu'il n'y a plus la limitation des 24h00.
Rejoignez-nous