Faire la difference entre deux temps

sensosofttunisiee Messages postés 80 Date d'inscription lundi 23 août 2004 Statut Membre Dernière intervention 2 octobre 2006 - 18 déc. 2004 à 12:18
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 18 déc. 2004 à 15:59
je vais faire la difference entre deux temps (par exemple temps d'entré au travail et temps de sortie)
je sais que la fonction qui fait la difference est "TimeSerial" mais je ne sais pas comment j'utulise j'ai ecrit ce code la:

'T1 contient le temp d'entrée
'T2 contient le temps de sortie

T1 = Label8(0).Caption
T2 = Label8(3).Caption

MsgBox (TimeSerial(hh, mm, ss),T1,T2)

il ne fonctionne pas de message d'erreur
merci aider moi ce urgent
JamJam

3 réponses

cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
18 déc. 2004 à 12:41
labout

voici un exemple

Option Explicit
Private T1 As Date
Private Sub Command1_Click()
MsgBox DateDiff("S", T1, Now)
End Sub

Private Sub Form_Load()
T1 = Now
End Sub

ou S est interval en secondes

il reste à traduire en h mn sec
@+
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 déc. 2004 à 12:44
Dim T1 As Date
Dim T2 As Date

T1 = Label8(0).Caption
T2 = Label8(3).Caption

MsgBox Format$(T2 - T1, "hh:mm:ss")

Daniel
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
18 déc. 2004 à 15:59
Petite précision,

Label8(0).Caption et Label8(3). Caption contiennent des heures ou la date complète ?

Si c la date complète alors OK sinon, si c'est des heures, alors l'exemple proposés par labout est faux et celui Gobillot va arranger fortement ceux qui travaillent de nuit.

Imagine que les heures soient :

Label8(0).Caption = "21:00:00"
Label8(3).Caption = "05:00:00"

Ca donnerait presque 920131 heures avec l'exemple de labout
Ca donnerait 16 heures avec l'exemple de Gobillot

Donc il faut tester si le 2ème temps est supérieur au 1er, sinon, il faut rajouter la valeur d'une journée en secondes (86400).

Dim T1 As Date
Dim T2 As Date

T1 = Label8(0).Caption
T2 = Label8(3).Caption

If DateDiff("s", T1, T2) > 0 Then
MsgBox DateDiff("s", T1, T2)
Else
MsgBox DateDiff("s", T1, T2) + 86400
End If


Après, tu convertis en heures, minutes, secondes

Je précise que mon exemple n'est valable que sur 2 jours consécutifs dans le cas de date incomplète (en heures).

Cordialement, CanisLupus
0
Rejoignez-nous