Addition et soustraction d'heures

Soyez le premier à donner votre avis sur cette source.

Snippet vu 26 163 fois - Téléchargée 57 fois

Contenu du snippet


Source / Exemple :


'pour une addition operation=0, pour une soustraction operation=1
Public Function heurop(heure1 As String, heure2 As String, operation As Integer) As String
If operation = 0 Then
somme = Val(DatePart("h", heure1)) * 3600 + Val(DatePart("n", heure1)) * 60 + Val(DatePart("s", heure1)) + Val(DatePart("h", heure2)) * 3600 + Val(DatePart("n", heure2)) * 60 + Val(DatePart("s", heure2))
heurop = Str(somme \ 3600) + ":" + Str((somme - (somme \ 3600) * 3600) \ 60) + ":" _
+ Str(somme - ((somme \ 3600) * 3600) - ((somme - (somme \ 3600) * 3600) \ 60) * 60)
ElseIf operation = 1 Then
diff = Val(DatePart("h", heure1)) * 3600 + Val(DatePart("n", heure1)) * 60 + Val(DatePart("s", heure1)) - Val(DatePart("h", heure2)) * 3600 - Val(DatePart("n", heure2)) * 60 - Val(DatePart("s", heure2))
heurop = Str(diff \ 3600) + ":" + Str((diff - (diff \ 3600) * 3600) \ 60) + ":" + _
Str(diff - ((diff \ 3600) * 3600) - ((diff - (diff \ 3600) * 3600) \ 60) * 60)
End If
End Function

A voir également

Ajouter un commentaire

Commentaires

julienmus
Messages postés
51
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
13 février 2012
-
salut
c une vielle source mais je voudrais poser une petite question
si j'additionne la date d'aujourd'hui et que je lui rajoute 20 heure il passe au jour suivant normale (9:28:00+20:00:00= 5:28:00)
donc je me suis dit que si je mais date.now + 20:00:00 il devrais me trouve :25/11/2009 05:28:00
en realité le resultat est 02/01/2001 05:28:00
pourquoi ?
philippe laschweng 1
Messages postés
278
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
13 avril 2013
1 -
Coucou, pas mal ta source. Je me suis permis de faire une petite modif (TimeSerial) pour obtenir un résultat de sortie normalisé :
01:02:12 au lieu de 1:2:12


'pour une addition operation=0, pour une soustraction operation=1
Public Function heurop(heure1 As String, heure2 As String, operation As Integer) As String
If operation = 0 Then
somme = Val(DatePart("h", heure1)) * 3600 + Val(DatePart("n", heure1)) * 60 + Val(DatePart("s", heure1)) + Val(DatePart("h", heure2)) * 3600 + Val(DatePart("n", heure2)) * 60 + Val(DatePart("s", heure2))
heurop = Str(somme \ 3600) + ":" + Str((somme - (somme \ 3600) * 3600) \ 60) + ":" + Str(somme - ((somme \ 3600) * 3600) - ((somme - (somme \ 3600) * 3600) \ 60) * 60)
heurop = TimeSerial(Str(somme \ 3600), Str((somme - (somme \ 3600) * 3600) \ 60), Str(somme - ((somme \ 3600) * 3600) - ((somme - (somme \ 3600) * 3600) \ 60) * 60))
ElseIf operation = 1 Then
diff = Val(DatePart("h", heure1)) * 3600 + Val(DatePart("n", heure1)) * 60 + Val(DatePart("s", heure1)) - Val(DatePart("h", heure2)) * 3600 - Val(DatePart("n", heure2)) * 60 - Val(DatePart("s", heure2))
heurop = TimeSerial(Str(diff \ 3600), Str((diff - (diff \ 3600) * 3600) \ 60), Str(diff - ((diff \ 3600) * 3600) - ((diff - (diff \ 3600) * 3600) \ 60) * 60))
End If
End Function
cs_Warny
Messages postés
478
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
10 juin 2015
-
Il y a infiniment plus simple :
NouvelleHeure = AncienneHeure + TimeSerial(nbHeures, nbMinutes, nbSecondes)
GarnetDiAlexandros
Messages postés
55
Date d'inscription
mercredi 31 juillet 2002
Statut
Membre
Dernière intervention
19 novembre 2004
-
C'est bien, mais je trouve que tu ne donnes pas assez de précisions, du genre
si heure1 va être ajoutée à heure2 ou le contraire, et surtout quel doit être le format des heures...
Ton code marche sûrement très très bien, mais il est difficile à comprendre malheureusement
cs_syphon
Messages postés
5
Date d'inscription
mercredi 8 mai 2002
Statut
Membre
Dernière intervention
14 mai 2002
-
merci pour le code

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.