Soustraire deux heures [Résolu]

Signaler
-
 edwinzap -
Bonjour.
Comment faire pour soustraire deux heures? J'utilise pour l'instant ce code, mais étant débutant j'ai bien peur que se ne soit pas la meilleur façon.
Dim TempsFin As Date = TimeOfDay
        Dim Heure = DateDiff(DateInterval.Hour, TempsDebut, TempsFin)
        Dim Minute = DateDiff(DateInterval.Minute, TempsDebut, TempsFin) - 60 * Heure
        Dim Seconde = DateDiff(DateInterval.Second, TempsDebut, TempsFin) - 60 * Minute - 3600 * Heure

        Temps = Format(Heure, "00") & ":" & Format(Minute, "00") & ":" & Format(Seconde, "00")


ayant auparavant bien sur déclarer TempsDebut= timeofday lors du chargement du formulaire.

Je fais le même code pour un autre calcul de temps, temps2. Mon problème le voici: je voudrais pouvoir soustraire temps avec temps2. Comment faire puisque temps est en format texte ainsi que temps2?
Merci

9 réponses

Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut

 Dim t As TimeSpan
 Dim t1 As Date = "10:12:05"
 Dim t2 As Date = "13:14:15"
 Dim result As Date
 t = t2.Subtract(t1)
 result = t.Hours & ":" & t.Minutes & ":" & t.Seconds
J'ai finalement trouvé une manière qui me convient parfaitement après avoir dimensionner dans form_Load:
date1= system.datetime.now

        date2 = System.DateTime.Now
        Dim temps As TimeSpan = date2.Subtract(date1)
        Dim H = temps.Hours
        Dim M = temps.Minutes
        Dim S = temps.Seconds
        Label_temps.Text = Format(H, "00") & ":" & Format(M, "00") & ":" & Format(S, "00")

Bonjour,

Dans to aide, la classe TimeSpan
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
6
Bonjour edwinzap,

Il y a peut être plus court ?
Pour un temps positif :

Dim hh As Integer = 0
Dim mn As Integer = 0
Dim ss As Integer = 0
Dim t1 As Date = "10:12:05"
Dim t2 As Date = "13:14:15"
ss = DateDiff(DateInterval.Second, t1, t2)
If ss <> 0 Then
 hh = ss \ 3600
 ss = ss - hh * 3600
 mn = ss \ 60
 ss = ss - mn * 60
End If
TextBox1.Text = Format(hh, "00") & "h" & Format(mn, "00") & "'" & Format(ss, "00")


Cordialement, Joe.

Salut ShayW,

Option Strict désactivé

Et ce projet ça avance ?
Merci pour les réponses.
Il s'avère que faire simplement t= t1-t2 fonctionne très bien et donne une valeur timespan (si je ne me trompe) que je sais facilement utilisé dans mon projet. La valeur donne "hh:mm:ss" juste ce qu'il me faut. J'ai donc supprimer tout le mon code pour remplacer simplement par cette soustraction. Pratique.
Par contre je ne trouve tjrs pas comment modifier une base de données que j'ai importée dans le projet (j'utilise vb 2010 express). Je pense qu'en double cliquant sur la base de données dans l'explorateur permet de la modifier, mais je ne sais pas si les changements sont pris en compte par la suite.
Pour modifier la base de donnée, cela fonctionne avec la méthode dont je n'étais pas sur dans le message précédent
Et pour la soustraction de temps, j'ai oublié d'indiquer qu'il fallait mettre en "date" (c logique mais bon)
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut Banana32

Option Strict désactivé


merci meme pas fait attention
du coup le projet s'est révolté
Et ce projet ça avance ?


cela dépend où on se place ?

Je parlais d'un projet éventuel en cours binetôt mis en ligne