Additionner des heures / minutes

cs_Fripouil Messages postés 175 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 8 mai 2017 - 9 févr. 2009 à 10:20
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 9 févr. 2009 à 11:50
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
A voir également:

3 réponses

enyc3styl3 Messages postés 6 Date d'inscription vendredi 13 août 2004 Statut Membre Dernière intervention 9 février 2009
9 févr. 2009 à 10:25
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;)
0
enyc3styl3 Messages postés 6 Date d'inscription vendredi 13 août 2004 Statut Membre Dernière intervention 9 février 2009
9 févr. 2009 à 11:40
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 févr. 2009 à 11:50
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
0
Rejoignez-nous