Soustraction de deux temps

Résolu
philippe laschweng 1 Messages postés 278 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 13 avril 2013 - 13 avril 2013 à 18:03
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 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.

Une idée ?
Merci par avance
Phil

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
3
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.

Cordialement.



Étant illettré, je signe d'une croix : ×
0
philippe laschweng 1 Messages postés 278 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 13 avril 2013 2
13 avril 2013 à 20:27
Merci ça marche nickel !!
Efficace comme d'habitude.
Phil
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 avril 2013 à 21:14
lol.
Tu vas rire, je ne me suis mis à .net sérieusement qu'il y a une semaine, mais les TimeSpan ont été une de mes fructueuses découvertes.
0
Rejoignez-nous