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
de rien
Merci aussi, ca m'a bien servit...
merci bcp ca m'a servir dans un de mes prog...
MERCI !!!!
Rejoignez-nous