Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Hans Le Roy
Bonjour Jacques,
"Jacques" wrote in message news:
Bonjour,
Dans une application je cumule les heures (j'essaie plutôt!) faites chaque jour.
Mais lorsque j'arrive à devoir additionner 20:00 avec 18:00 cela ne fonctionne plus Comment afficher mes 38:00 dans mon textbox.
Merci
Jacques
C'est que des heures en VB, ce sont des fragments de jours. J'en ferais des integers ou plutôt une classe basée sur des integers, qui rendent les heures comme tu le désires.
A+
Hans
Bonjour Jacques,
"Jacques" <jac_be@hotmail.com> wrote in message
news:e4BZODD3HHA.5880@TK2MSFTNGP03.phx.gbl...
Bonjour,
Dans une application je cumule les heures (j'essaie plutôt!) faites chaque
jour.
Mais lorsque j'arrive à devoir additionner 20:00 avec 18:00 cela ne
fonctionne plus
Comment afficher mes 38:00 dans mon textbox.
Merci
Jacques
C'est que des heures en VB, ce sont des fragments de jours. J'en ferais des
integers ou plutôt une classe basée sur des integers, qui rendent les heures
comme tu le désires.
Dans une application je cumule les heures (j'essaie plutôt!) faites chaque jour.
Mais lorsque j'arrive à devoir additionner 20:00 avec 18:00 cela ne fonctionne plus Comment afficher mes 38:00 dans mon textbox.
Merci
Jacques
C'est que des heures en VB, ce sont des fragments de jours. J'en ferais des integers ou plutôt une classe basée sur des integers, qui rendent les heures comme tu le désires.
A+
Hans
Jean-marc
Jacques wrote:
Bonjour,
Dans une application je cumule les heures (j'essaie plutôt!) faites chaque jour.
Mais lorsque j'arrive à devoir additionner 20:00 avec 18:00 cela ne fonctionne plus Comment afficher mes 38:00 dans mon textbox.
Merci
Jacques
Hello,
si tu cumules des entités de type "heures/minute", tout ce qu'il te faut c'est implémenter une petite fonction de calcul en base soixante. (Il ne faut pas passer par le type date. Le type Date est pour des ==>> *temps* <<== alors que toi tu manipules des ==>> *durées* <<==.)
Alors voila tu fais un type comme ceci:
Private Type TDuree heure As Integer minute As Integer End Type
Puis une fonction de calcul de somme, comme ça:
Private Function AddDur(d1 As TDuree, d2 As TDuree) As TDuree Dim h As Integer, m As Integer Dim rh As Integer Dim res As TDuree
m = d1.minute + d2.minute If m >= 60 Then rh = Int(m / 60) m = m - 60 * rh End If res.minute = m res.heure = d1.heure + d2.heure + rh AddDur = res End Function
Puis une fonction de plus haut niveau qui peut additioner un tableau, par exemple:
Private Function SommeDuree(d() As TDuree, n As Long) As TDuree Dim res As TDuree Dim i As Long
For i = 1 To n res = AddDur(res, d(i)) Next i SommeDuree = res End Function
Et pour l'utiliser et bien c'est tout simple:
Private Sub Command1_Click() Dim dur(31) As TDuree Dim total As TDuree
' jour 1, travail 12 heures et 16 minutes dur(1).heure = 12: dur(1).minute = 16
' jour 2, travail 10 heures et 49 minutes dur(2).heure = 10: dur(2).minute = 49
' jour 3, travail 14 heures et 37 minutes dur(3).heure = 14: dur(3).minute = 37
total = SommeDuree(dur, 3) Debug.Print total.heure & ":" & total.minute End Sub
Dans une application je cumule les heures (j'essaie plutôt!) faites
chaque jour.
Mais lorsque j'arrive à devoir additionner 20:00 avec 18:00 cela ne
fonctionne plus
Comment afficher mes 38:00 dans mon textbox.
Merci
Jacques
Hello,
si tu cumules des entités de type "heures/minute", tout ce
qu'il te faut c'est implémenter une petite fonction de calcul
en base soixante.
(Il ne faut pas passer par le type date. Le type Date est pour
des ==>> *temps* <<== alors que toi tu manipules des
==>> *durées* <<==.)
Alors voila tu fais un type comme ceci:
Private Type TDuree
heure As Integer
minute As Integer
End Type
Puis une fonction de calcul de somme, comme ça:
Private Function AddDur(d1 As TDuree, d2 As TDuree) As TDuree
Dim h As Integer, m As Integer
Dim rh As Integer
Dim res As TDuree
m = d1.minute + d2.minute
If m >= 60 Then
rh = Int(m / 60)
m = m - 60 * rh
End If
res.minute = m
res.heure = d1.heure + d2.heure + rh
AddDur = res
End Function
Puis une fonction de plus haut niveau qui peut additioner
un tableau, par exemple:
Private Function SommeDuree(d() As TDuree, n As Long) As TDuree
Dim res As TDuree
Dim i As Long
For i = 1 To n
res = AddDur(res, d(i))
Next i
SommeDuree = res
End Function
Et pour l'utiliser et bien c'est tout simple:
Private Sub Command1_Click()
Dim dur(31) As TDuree
Dim total As TDuree
' jour 1, travail 12 heures et 16 minutes
dur(1).heure = 12: dur(1).minute = 16
' jour 2, travail 10 heures et 49 minutes
dur(2).heure = 10: dur(2).minute = 49
' jour 3, travail 14 heures et 37 minutes
dur(3).heure = 14: dur(3).minute = 37
total = SommeDuree(dur, 3)
Debug.Print total.heure & ":" & total.minute
End Sub
Dans une application je cumule les heures (j'essaie plutôt!) faites chaque jour.
Mais lorsque j'arrive à devoir additionner 20:00 avec 18:00 cela ne fonctionne plus Comment afficher mes 38:00 dans mon textbox.
Merci
Jacques
Hello,
si tu cumules des entités de type "heures/minute", tout ce qu'il te faut c'est implémenter une petite fonction de calcul en base soixante. (Il ne faut pas passer par le type date. Le type Date est pour des ==>> *temps* <<== alors que toi tu manipules des ==>> *durées* <<==.)
Alors voila tu fais un type comme ceci:
Private Type TDuree heure As Integer minute As Integer End Type
Puis une fonction de calcul de somme, comme ça:
Private Function AddDur(d1 As TDuree, d2 As TDuree) As TDuree Dim h As Integer, m As Integer Dim rh As Integer Dim res As TDuree
m = d1.minute + d2.minute If m >= 60 Then rh = Int(m / 60) m = m - 60 * rh End If res.minute = m res.heure = d1.heure + d2.heure + rh AddDur = res End Function
Puis une fonction de plus haut niveau qui peut additioner un tableau, par exemple:
Private Function SommeDuree(d() As TDuree, n As Long) As TDuree Dim res As TDuree Dim i As Long
For i = 1 To n res = AddDur(res, d(i)) Next i SommeDuree = res End Function
Et pour l'utiliser et bien c'est tout simple:
Private Sub Command1_Click() Dim dur(31) As TDuree Dim total As TDuree
' jour 1, travail 12 heures et 16 minutes dur(1).heure = 12: dur(1).minute = 16
' jour 2, travail 10 heures et 49 minutes dur(2).heure = 10: dur(2).minute = 49
' jour 3, travail 14 heures et 37 minutes dur(3).heure = 14: dur(3).minute = 37
total = SommeDuree(dur, 3) Debug.Print total.heure & ":" & total.minute End Sub
J'ai souvent utilisé les heures (feuille de paye, etc), en complément de la répons de Jean-Marc: Tu peux utiliser plus simple, juste en arithmétique en faisant des variables, genre:
dim temps as long dim jj as long dim hh as long dim mn as long dim ss as long hh = val(mid(duree, 1,2)) mn = val(mid(duree, 4,2)) ss = val(mid(duree, 7, 2) ) temps = ss + (mn * 60) + (hh * 3600) ' tou en secondes jj = temps 86400 temps = temps - (jj * 86400) hh = temps 3600 temps = temps - (hh * 3600) mn = temps 60 ss = temps - (mn * 60)
Je n'ai pas testé, il peut y avoir quelque corrections... Et pour récupérer l'heure hh:mn:ss par exemple x = val(mid(duree, 1, 2))
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Jacques" a écrit dans le message de news:
| Bonjour, | | Dans une application je cumule les heures (j'essaie plutôt!) faites chaque | jour. | | Mais lorsque j'arrive à devoir additionner 20:00 avec 18:00 cela ne | fonctionne plus | Comment afficher mes 38:00 dans mon textbox. | | | Merci | | Jacques | |
Bonjour Jacques,
J'ai souvent utilisé les heures (feuille de
paye, etc), en complément de la répons de
Jean-Marc:
Tu peux utiliser plus simple, juste en
arithmétique en faisant des variables, genre:
dim temps as long
dim jj as long
dim hh as long
dim mn as long
dim ss as long
hh = val(mid(duree, 1,2))
mn = val(mid(duree, 4,2))
ss = val(mid(duree, 7, 2) )
temps = ss + (mn * 60) + (hh * 3600) ' tou en
secondes
jj = temps 86400
temps = temps - (jj * 86400)
hh = temps 3600
temps = temps - (hh * 3600)
mn = temps 60
ss = temps - (mn * 60)
Je n'ai pas testé, il peut y avoir quelque
corrections...
Et pour récupérer l'heure hh:mn:ss par exemple
x = val(mid(duree, 1, 2))
--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques" <jac_be@hotmail.com> a écrit dans le
message de news:
e4BZODD3HHA.5880@TK2MSFTNGP03.phx.gbl...
| Bonjour,
|
| Dans une application je cumule les heures
(j'essaie plutôt!) faites chaque
| jour.
|
| Mais lorsque j'arrive à devoir additionner 20:00
avec 18:00 cela ne
| fonctionne plus
| Comment afficher mes 38:00 dans mon textbox.
|
|
| Merci
|
| Jacques
|
|
J'ai souvent utilisé les heures (feuille de paye, etc), en complément de la répons de Jean-Marc: Tu peux utiliser plus simple, juste en arithmétique en faisant des variables, genre:
dim temps as long dim jj as long dim hh as long dim mn as long dim ss as long hh = val(mid(duree, 1,2)) mn = val(mid(duree, 4,2)) ss = val(mid(duree, 7, 2) ) temps = ss + (mn * 60) + (hh * 3600) ' tou en secondes jj = temps 86400 temps = temps - (jj * 86400) hh = temps 3600 temps = temps - (hh * 3600) mn = temps 60 ss = temps - (mn * 60)
Je n'ai pas testé, il peut y avoir quelque corrections... Et pour récupérer l'heure hh:mn:ss par exemple x = val(mid(duree, 1, 2))
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "Jacques" a écrit dans le message de news:
| Bonjour, | | Dans une application je cumule les heures (j'essaie plutôt!) faites chaque | jour. | | Mais lorsque j'arrive à devoir additionner 20:00 avec 18:00 cela ne | fonctionne plus | Comment afficher mes 38:00 dans mon textbox. | | | Merci | | Jacques | |
Jacques
Merci tout le monde :-)
Jacques
"Jacques" a écrit dans le message de news:
Bonjour,
Dans une application je cumule les heures (j'essaie plutôt!) faites chaque jour.
Mais lorsque j'arrive à devoir additionner 20:00 avec 18:00 cela ne fonctionne plus Comment afficher mes 38:00 dans mon textbox.
Merci
Jacques
Merci tout le monde :-)
Jacques
"Jacques" <jac_be@hotmail.com> a écrit dans le message de news:
e4BZODD3HHA.5880@TK2MSFTNGP03.phx.gbl...
Bonjour,
Dans une application je cumule les heures (j'essaie plutôt!) faites chaque
jour.
Mais lorsque j'arrive à devoir additionner 20:00 avec 18:00 cela ne
fonctionne plus
Comment afficher mes 38:00 dans mon textbox.