Additionner des heures / minutes

Signaler
Messages postés
175
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
8 mai 2017
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour,

Voila mon problême, je n' arrive pas à additionner des heures.

Je m' explique dans mon Text01 : j' ai une durée au format HH.mm
Dans mon Text02 : une durée en minutes que j' aimerais visuellement au format HH.mm ( ex : 30 = 00:30 )
et dans Text03 : la somme de Text01 et Text02

J' ai essayé de modifier un code trouvé sur le site qui mettait tout en minutes puis reconvertissait en HH.mm, pour ignorer les 24h, mais cela ne fonctionne pas chez moi

Si quelqu' un pouvait m' aider 5 minutes ( 00:05 lol ), merci par avance

Fripouil

3 réponses

Messages postés
6
Date d'inscription
vendredi 13 août 2004
Statut
Membre
Dernière intervention
9 février 2009

Donne moi 5 minutes je te donne ta réponse en code... quoi de simple,ton but cé de transformer tes hr.mm et Milisecondes(cé à dire en nombre et ce pour tes deux variables ou encore texteBox et bien sur tu aditionne le tout et tu le retransforme en temps Hr.mm.. donc patiente et tu sera servi;)
Messages postés
6
Date d'inscription
vendredi 13 août 2004
Statut
Membre
Dernière intervention
9 février 2009

Donc je t'explique: On split ta donnée heure:minutes:secondes et 3( si tu n'as pas de seconde ben suprime le   int(st1(2)* 1000)) et par la suite on multiplie chacune de tes valeur fois le nombre de milliseconde respectif de leurs positions et on termine sans en convertissant le tout...

Private Sub SplitTemps()

Dim St1() As String
Dim i

St1() = Split(Text01, ":")
For i = 0 To UBound(St1)
Next i
'Une fois le split terminé tu devrais obtenir 3 variable St1()
'St1(0)=heure
'St1(1)=minutes
'St1(2)=secondes

text03= (int(st1(0)*3600000)+int(st1(1)*60000)+int(st1(2)* 1000) + Text02)
text03= FormatTemps(CDbl(Replace(Text03, Chr(0), "") / 1000))
Text02 = FormatTemps(CDbl(Replace(Text02, Chr(0), "") / 1000))

End Sub

Private Function FormatTemps(dTemps As Double) As String
   Dim lHeure As Long
   Dim lMinute As Long
   Dim lSeconde As Long
   Dim lTemps As Long
  
   lTemps = Round(dTemps)
   lHeure = Int(lTemps / 3600)
   lMinute = Int((lTemps - 3600 * lHeure) / 60)
   lSeconde = lTemps - 3600 * lHeure - 60 * lMinute
   FormatTemps = Format(lHeure, "00") & ":" & Format(lMinute, "00") & ":" & Format(lSeconde, "00")
End Function
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
autre possibilité:

TextBox2.Text = New DateTime().AddMinutes(30).ToShortTimeString

et pour l'addition:

With DateTime.Parse(TextBox2.Text)
Dim nCount As Long = .Hour * 60 + .Minute
TextBox3.Text = DateTime.Parse(TextBox1.Text).AddMinutes(nCount)
End With