ADDITION ET SOUSTRACTION D'HEURES

KL - 15 juin 2001 à 23:58
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
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/1326-addition-et-soustraction-d-heures

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
Afficher les 8 commentaires