Soustraire deux heures

Résolu
edwinzap - 24 janv. 2013 à 17:43
 edwinzap - 18 févr. 2013 à 20:09
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
A voir également:

9 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
25 janv. 2013 à 12:04
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
3
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")
3
Utilisateur anonyme
24 janv. 2013 à 17:48
Bonjour,

Dans to aide, la classe TimeSpan
0
ehjoe Messages postés 728 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 30 mars 2014 4
25 janv. 2013 à 11:38
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
25 janv. 2013 à 17:48
Salut ShayW,

Option Strict désactivé

Et ce projet ça avance ?
0
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.
0
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)
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
27 janv. 2013 à 11:28
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 ?
0
Utilisateur anonyme
27 janv. 2013 à 12:13
Je parlais d'un projet éventuel en cours binetôt mis en ligne
0
Rejoignez-nous