philippe laschweng 1
Messages postés278Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention13 avril 2013
-
13 avril 2013 à 18:03
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
13 avril 2013 à 21:14
Bonjour à tous,
Je galère depuis plus de deux heures à trouver une solution pour quelque chose qui paraît simple. J'ai cherché sur le forum mais sans succès !!
J'ai deux variables de type String extraites d'un DataGridView sous la forme :
Time1 = 00:02:21.515 (pour 2 minutes, 21 secondes, 515 millisecondes)
Time2 = 00:01:45.047 (pour 1 minute, 45 secondes, 047 millisecondes)
Je cherche à faire une soustraction de ces temps soit Time1 - Time2.
Je bloque complétement avec les mises en forme, j'ai cherché à le faire avec un TimeSpan mais je n'y arrive pas.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 13 avril 2013 à 19:27
Salut
Ca marche bien avec les TimeSpan :
Dim sDate1 As String = "00:02:21.515"
Dim sDate2 As String = "00:01:45.047"
Dim dDate1 As Date = TimeValue(sDate1)
Dim dDate2 As Date = TimeValue(sDate2)
Dim dTimeSpan As TimeSpan = dDate1.Subtract(dDate2)
Console.WriteLine(dTimeSpan.ToString)
et renvoie bien 00:00:36.4680000
Seule truc qui fait "peur", c'est que dDate1 et dDate2 n'affichent pas les millièmes de secondes, mais elles sont quand même là.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
Bonjour philippe...
Prenons l'exemple du String Time1. Avec la fonction Split, vous le décomposez en trois string
Str1 = "00"
Str2 = "02"
Str3 = "21.515"
Ensuite, par la fonction CDbl, vous convertissez ces trois string en trois nombres de type Double
Dbl1 = 00
Dbl2 = 02
Dbl3 = 21.515
ce qui vous donne, exprimé en secondes, le temps
Dbl3 + (60 × Dbl2) + (3600 × Dbl1)
Je vous laisse vous débrouiller avec la soustraction.