Déffirence entre deux temps

mags21000 Messages postés 14 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 22 septembre 2005 - 4 sept. 2005 à 22:39
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 6 sept. 2005 à 22:56
qui peu me faire un code source pour déffirence entre deux temps en vb 12:00 - 13:01 = 01:01 ou m'éxpléquer par détay et je suis début
merçi à l'avence

17 réponses

cs_hassen Messages postés 338 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 4 novembre 2008
4 sept. 2005 à 22:55
tu peut utiliser la fonction datediff
datediff('n',"04/09/2005 22:51","04/09/2005 22:59")=8


ici j'ai demander la differance entre les date en nombre de minute ( 'n' )

Hassen TUNISIE
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
4 sept. 2005 à 22:57
if suffit de faire la soustraction.

mais attention résultat limité à 24 heures.







Dim d1 As Date

Dim d2 As Date



d1 = "12:00"

d2 = "13:01"



If d2 > d1 Then

MsgBox CDate(d2 - d1)

Else

MsgBox CDate(d1 - d2)

End If


Daniel
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 sept. 2005 à 23:16
bon, bah on va faire une solution différente

'variables
Dim TimeD As String, TimeDh As Integer, TimeDm As Integer
Dim TimeF As String, TimeFh As Integer, TimeFm As Integer
Dim MinsDiff As Integer, TimeDiffs As String


'heures voulues
TimeD = "12:00"
TimeF = "13:01"


'découpe heures et minutes en Integer
TimeDh = Mid(TimeD, 1, 2)
TimeDm = Mid(TimeD, 4, 2)
TimeFh = Mid(TimeF, 1, 2)
TimeFm = Mid(TimeF, 4, 2)


'différence en minutes
MinsDiff = ((TimeFh * 60) + TimeFm) - ((TimeDh * 60) + TimeDm)


'affichage du résultat (facultatif)
MsgBox MinsDiff Mod 60 & " heure(s) et " & Int(MinsDiff / 60) & " minute(s)"


'enregistrement et affichage du résultat dans le format demandé
TimeDiffs = Format(MinsDiff Mod 60 & ":" & Int(MinsDiff / 60), "HH:MM")
MsgBox TimeDiffs

PCPT
0
mags21000 Messages postés 14 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 22 septembre 2005
5 sept. 2005 à 20:12
merçi pcpt ça ce que je veux mais ça marche pas bien con j'ai changer la dat 13:01 par 14:00 il me donne 12:00 - 14:00 = 00:02
ok c un bonne travail mais il faux le coreger svp j'atend ton correction merçi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
5 sept. 2005 à 20:48
chez moi ça marche.









Private Sub Command1_Click()

Dim d1 As Date

Dim d2 As Date



d1 = "12:00"

d2 = "14:00"



If d2 > d1 Then

MsgBox Format$(d2 - d1, "hh:nn")

Else

MsgBox Format$(d1 - d2, "hh:nn")

End If

End Sub


Daniel
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 sept. 2005 à 20:50
en effet, j'ai voulu aler un peu trop vite

'variables
Dim TimeD As String, TimeDh As Integer, TimeDm As Integer
Dim TimeF As String, TimeFh As Integer, TimeFm As Integer
Dim MinsDiff As Integer, TimeDiffs As String

'heures voulues
TimeD = "12:00"
TimeF = "14:00"

'découpe heures et minutes en Integer
TimeDh = Mid (TimeD, 1, 2)
TimeDm = Mid(TimeD, 4, 2)
TimeFh = Mid (TimeF, 1, 2)
TimeFm = Mid(TimeF, 4, 2)

'différence en minutes
MinsDiff = (TimeFh * 60) + TimeFm) - (TimeDh * 60) + TimeDm)

'enregistrement et affichage du résultat dans le format demandé
If MinsDiff Mod 60 <> 0 Then
TimeDiffs = Format (Int(MinsDiff / 60) & ":" & MinsDiff Mod 60, "HH:MM")
Else
TimeDiffs = Format(MinsDiff / 60 & ":00", "HH:MM")
End If

MsgBox TimeDiffs

PCPT
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
5 sept. 2005 à 21:32
avec possibilité de passer minuit









Dim d1 As Date

Dim d2 As Date

Dim d As Date



' exemple:

' de 23 heures à 1 heure du matin

' il y a 2 heures et non pas 22 heures

d1 = "23:00"

d2 = "01:00"



d = d2 - d1

If d < 0 Then d = d + 1

MsgBox Format$(d, "hh:nn")






Daniel
0
mags21000 Messages postés 14 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 22 septembre 2005
6 sept. 2005 à 19:25
gobillot ca marche command convertir les heures en minutes
0
mags21000 Messages postés 14 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 22 septembre 2005
6 sept. 2005 à 19:29
convertir ex 01:01 = 61
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
6 sept. 2005 à 19:39
je te donne 3 méthodes différentes









Dim temps As String



temps = "01:01"



' avec traitement par chaîne si temps est une chaîne

MsgBox Left$(temps, 2) * 60 + Right$(temps, 2)



'avec traitement par Date

MsgBox Hour(temps) * 60 + Minute(temps)

MsgBox DateDiff("n", 0, temps)


Daniel
0
mags21000 Messages postés 14 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 22 septembre 2005
6 sept. 2005 à 20:51
commend arrendire 123.49 en 123.00
et 123.51 en 124.00
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 sept. 2005 à 21:17
Private Sub Form_Load()
'MSDN
MyDouble1 = 123.49
MyDouble2 = 123.51
MsgBox CInt(MyDouble1) & " " & CInt(MyDouble2)
End Sub


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>

PCPT
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
6 sept. 2005 à 21:20
si tu l'as en numérique:



Dim nombre As Double



'exemple

nombre = 123.49



'faut prendre la partie entière

nombre = Int(nombre)

'pour l'affichage ce sera 123,00 si la virgule est le signe décimal

MsgBox Format$(nombre, "#0.00")





si tu l'as en chaîne:

Dim Str As String



'exemple

Str = "123.51"



'soit par la méthode numérique

MsgBox Format$(Int(Val(Str)), "#0.00")



' ou par la méthode chaîne

'on remplace les 2 derniers caractères

Mid$(Str, Len(Str) - 1) = "00"

'pas de problème pour l'affichage

MsgBox Str



Remarques:

Str = "123.51"



'conversion numérique se plante (toujours si virgule est le signe décimal)

MsgBox <strike>CDbl(Str)</strike>



' tandis que Val() marche très bien

MsgBox Val(Str)


Daniel
0
mags21000 Messages postés 14 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 22 septembre 2005
6 sept. 2005 à 22:20
ok comment faire un minuteur
et comment faire un crono
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 sept. 2005 à 22:35
je m'arrête là. j'ai ma dose.
aucun merci,
aucun "oui, je garde cette solution qui me parraî la mieux adaptée"
aucun "vous faîtes des efforts d'orthographe, je vais en faire autant"
aucun "svp"

allez, basta !
bon courage pour faire (ou faire faire???) ton appli

ps : gobillot > pas de déclaration en VBA

++
PCPT
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
6 sept. 2005 à 22:51
pour faire un minuteur, un chrono tu met un Timer.


si d'autres questions poses les sur un nouveau Post





Ps: j'ai VB6 c'est pas à moi d'adapter,


pour Vba enlèves les "As bidule"






patience et longueur de temps font plus que force ni que rage





[Jean de La fontaine]


Daniel
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 sept. 2005 à 22:56
ps : c'était pour info....
nb : j'ai ma dose, mais pas encore enragé. remarque, il n'y a bien que quand une personne est morte qu'on la lit. je vais donc m'arrêter là....
PCPT
0
Rejoignez-nous