Addition et soustraction d'heures

Soyez le premier à donner votre avis sur cette source.

Snippet vu 27 341 fois - Téléchargée 59 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
24 nov. 2009 à 10:14
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 2
5 août 2005 à 11:48
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 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
24 févr. 2003 à 11:55
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
2 oct. 2002 à 14:34
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
14 mai 2002 à 12:52
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.