Addition & soustraction d'heure sur une base de 24h

0/5 (6 avis)

Vue 29 384 fois - Téléchargée 1 047 fois

Description

Cette fontion permet d'ajouter ou de retrancher des Heures.

Source / Exemple :


Dim Second_Temp As Integer     'Stock temporairement la valeur des Secondes
Dim Minute_Temp As Integer     'Stock temporairement la valeur des Minutes
Dim Heure_Temp As Integer      'Stock temporairement la valeur des Heures

'Operation Doit être positif pour un addittion des heures et negatif pour la soustration.
'Time1 et Time2 sont de la forme "##:##:##"
'Operation doit être différent de 0 sinon Time_operation = Time1
'Le retour Time_Operation() est de la forme "##:##:##"
Private Function Time_operation(ByRef Time1 As String, ByRef Time2 As String, ByRef Operation As Integer)
Operation = Sgn(Operation)
Second_Temp = Val(Right(Time1, 2)) + Val(Right(Time2, 2)) * Operation
Minute_Temp = Val(Mid(Time1, 4, 2)) + Val(Mid(Time2, 4, 2)) * Operation
Heure_Temp = Val(Left(Time1, 2)) + Val(Left(Time2, 2)) * Operation

If Second_Temp > 59 Or Second_Temp < 0 Then
  Second_Temp = Second_Temp - 60 * Operation
  Minute_Temp = Minute_Temp + 1 * Operation
End If
If Minute_Temp > 59 Or Minute_Temp < 0 Then
  Minute_Temp = Minute_Temp - 60 * Operation
  Heure_Temp = Heure_Temp + 1 * Operation
End If
If Heure_Temp > 23 Or Heure_Temp < 0 Then Heure_Temp = Heure_Temp - 24 * Operation ' enlever cette ligne pour suppr. la base 24H

Time_operation = Format(Heure_Temp, "0#") & ":" & Format(Minute_Temp, "0#") & ":" & Format(Second_Temp, "0#")
End Function

Codes Sources

A voir également

Ajouter un commentaire Commentaires
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
25 mars 2007 à 14:04
Mon commentaire ?

Pourquoi (sans jeu de mots) chercher midi à quatorze heure ?

Méthode scolaire et efficace, donc :

Private Sub Command1_Click()
time1 = "01:40:20"
time2 = "10:25:41"
heures = Val(Hour(time1)) + Val(Hour(time2))
minutes = Val(Minute(time1)) + Val(Minute(time2))
secondes = Val(Second(time1)) + Val(Second(time2))
ajustons secondes, minutes, 60
DoEvents
ajustons minutes, heures, 60
MsgBox heures & " heures " & minutes & " minutes " & secondes & " secondes "
End Sub

Private Sub ajustons(quoi, quoiavant, combien)
qui = quoi Mod combien
quoiavant = quoiavant + (quoi \ combien)
quoi = qui
End Sub

et on pourrait continuer avec ce même principe avec des 10èmes, des centième, des milliers, etc.... de secondes, bien évidemment

Private Sub Command1_Click()
time1 = "01:40:20"
time2 = "10:25:41"
heures = Hour(time1) + Hour(time2)
minutes = Minute(time1) + Minute(time2)
secondes = Second(time1) + Second(time2)
ajustons secondes, minutes, 60
DoEvents
ajustons minutes, heures, 60
MsgBox heures & " heures " & minutes & " minutes " & secondes & " secondes "
End Sub

Private Sub ajustons(quoi, quoiavant, combien)
qui = quoi Mod combien
quoiavant = quoiavant + (quoi \ combien)
quoi = qui
End Sub
stefan69 Messages postés 3 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 1 juin 2006
31 mai 2006 à 15:15
Trop TOP, la classe cette fonction.
J'explose de joie lorsqu'il me sort le bon chiffre.
J'ai tellement galèré dessus, bou, j'y pense plus :-)
Comme ils le disent si bien dans une pub 'heu reux'
GarnetDiAlexandros Messages postés 55 Date d'inscription mercredi 31 juillet 2002 Statut Membre Dernière intervention 19 novembre 2004
2 oct. 2002 à 14:44
Très très bon code
ça marche du tonnerre et c'est bien expliqué
fbrt Messages postés 39 Date d'inscription lundi 25 février 2002 Statut Membre Dernière intervention 16 avril 2005
18 avril 2002 à 12:25
Désolé pour ma question. Je viens de trouver une méthode : convertir en seconde, faire la division, remettre en heure. En plus, les conversions d'heure/seconde sont des sources de toi. Merci quand meme, tes sources vont m'aider.
fbrt Messages postés 39 Date d'inscription lundi 25 février 2002 Statut Membre Dernière intervention 16 avril 2005
18 avril 2002 à 09:41
Salut, ton code m'est bien utile, je l'ai utilisé pour un programme. Mais je cherche aussi une fonction pour diviser une heure par un nombre entier (en arrondissant si ca tombe pas juste), par ex : 05:02:00 /2 = 02:31:00.
Tu sais pas comment je pourrais faire cette fonction ?

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.