Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

calcul d'une durée entre deux heures

11 réponses
Avatar
keita
bonjour,
jusqu'=E0 aujourdh'ui j'ai pu me debrouiller mais je tombe sur un pb
simple mais que je n'arrive pas =E0 resoudre.
sur une form j'ai deux listbox :

Dim i, j As Integer
Dim horaire A

For i =3D 8 To 17
For j =3D 0 To 45 Step 15
horaire =3D (i & ":" & j)
ListBox1.Items.Add(horaire.ToString("HH\:mm"))
ListBox2.Items.Add(horaire.ToString("HH\:mm"))
Next
Nexts DateTime
cela me donne un choix debut du style 09:15 et un choix fin du style
13:45 .

ensuite, pour avoir la dur=E9e entre debut et fin je fais :

Dim jour, d, f As String
Dim debut, fin, dif As TimeSpan
Dim dur=E9e As String

d =3D ListBox1.SelectedItem
f =3D ListBox2.SelectedItem
debut =3D debut.Parse(d)
fin =3D fin.Parse(f)
dif =3D fin.Subtract(debut)
dur=E9e =3D dif.ToString

PB : je n'arrive pas =E0 avoir la dur=E9e heure minute , je l'ai toujours
en heure min seconde.

Comment faire?
Merci d'avance

10 réponses

1 2
Avatar
Megaten
Essaie

EndDate.Substract(StartDate)

keita a écrit :
bonjour,
jusqu'à aujourdh'ui j'ai pu me debrouiller mais je tombe sur un pb
simple mais que je n'arrive pas à resoudre.
sur une form j'ai deux listbox :

Dim i, j As Integer
Dim horaire A

For i = 8 To 17
For j = 0 To 45 Step 15
horaire = (i & ":" & j)
ListBox1.Items.Add(horaire.ToString("HH:mm"))
ListBox2.Items.Add(horaire.ToString("HH:mm"))
Next
Nexts DateTime
cela me donne un choix debut du style 09:15 et un choix fin du style
13:45 .

ensuite, pour avoir la durée entre debut et fin je fais :

Dim jour, d, f As String
Dim debut, fin, dif As TimeSpan
Dim durée As String

d = ListBox1.SelectedItem
f = ListBox2.SelectedItem
debut = debut.Parse(d)
fin = fin.Parse(f)
dif = fin.Subtract(debut)
durée = dif.ToString

PB : je n'arrive pas à avoir la durée heure minute , je l'ai toujours
en heure min seconde.

Comment faire?
Merci d'avance



Avatar
Megaten
Désolé j'ai repondu avant de lire la question

durée= Format(durée, "hh:mm") 'MR

keita a écrit :
bonjour,
jusqu'à aujourdh'ui j'ai pu me debrouiller mais je tombe sur un pb
simple mais que je n'arrive pas à resoudre.
sur une form j'ai deux listbox :

Dim i, j As Integer
Dim horaire A

For i = 8 To 17
For j = 0 To 45 Step 15
horaire = (i & ":" & j)
ListBox1.Items.Add(horaire.ToString("HH:mm"))
ListBox2.Items.Add(horaire.ToString("HH:mm"))
Next
Nexts DateTime
cela me donne un choix debut du style 09:15 et un choix fin du style
13:45 .

ensuite, pour avoir la durée entre debut et fin je fais :

Dim jour, d, f As String
Dim debut, fin, dif As TimeSpan
Dim durée As String

d = ListBox1.SelectedItem
f = ListBox2.SelectedItem
debut = debut.Parse(d)
fin = fin.Parse(f)
dif = fin.Subtract(debut)
durée = dif.ToString

PB : je n'arrive pas à avoir la durée heure minute , je l'ai toujours
en heure min seconde.

Comment faire?
Merci d'avance



Avatar
keita
salut, et merci pour ton aide
mais cela me donne literalement : hh:mm c'est à dire la synthaxe du
format !!!
j'avais deja essayé.
merci...et moi aussi je cherche toujours
Avatar
Megaten
Quel est le format que tu obtiens?


keita a écrit :
salut, et merci pour ton aide
mais cela me donne literalement : hh:mm c'est à dire la synthaxe du
format !!!
j'avais deja essayé.
merci...et moi aussi je cherche toujours



Avatar
keita
j'obtiens : hh:mm comme je l'ecrit.
etonnant!
Avatar
Millox Frédéric
Salut Keita,

Tu peux rajouter :

durée = durée.Substring(0, durée.LastIndexOf(":"))

Simple mais efficace, vu que ton résultat est un String.

P.S. : Les noms de variable avec des accents, c'est pas terrible du tout....

A+

--
fmillox


"keita" a écrit :

bonjour,
jusqu'à aujourdh'ui j'ai pu me debrouiller mais je tombe sur un pb
simple mais que je n'arrive pas à resoudre.
sur une form j'ai deux listbox :

Dim i, j As Integer
Dim horaire A

For i = 8 To 17
For j = 0 To 45 Step 15
horaire = (i & ":" & j)
ListBox1.Items.Add(horaire.ToString("HH:mm"))
ListBox2.Items.Add(horaire.ToString("HH:mm"))
Next
Nexts DateTime
cela me donne un choix debut du style 09:15 et un choix fin du style
13:45 .

ensuite, pour avoir la durée entre debut et fin je fais :

Dim jour, d, f As String
Dim debut, fin, dif As TimeSpan
Dim durée As String

d = ListBox1.SelectedItem
f = ListBox2.SelectedItem
debut = debut.Parse(d)
fin = fin.Parse(f)
dif = fin.Subtract(debut)
durée = dif.ToString

PB : je n'arrive pas à avoir la durée heure minute , je l'ai toujours
en heure min seconde.

Comment faire?
Merci d'avance




Avatar
Megaten
Non c'est le format de ce que tu obtiens avec le format.
J'ai fait un essai avec
d = "45:45:12"

D= String.format(D, """:""")
et
D = String.Format(D, "hh:mm")

et cette fois ci j'obtiens "45:45:12"

vraiment agaçant ce truc
A= si je croise une solution?

keita a écrit :
j'obtiens : hh:mm comme je l'ecrit.
etonnant!



Avatar
Megaten
Merci Frederic je vais pouvoir dormir ce soir
un peu moins bete.

Millox Frédéric a écrit :
Salut Keita,

Tu peux rajouter :

durée = durée.Substring(0, durée.LastIndexOf(":"))

Simple mais efficace, vu que ton résultat est un String.

P.S. : Les noms de variable avec des accents, c'est pas terrible du tout....

A+



Avatar
Millox Frédéric
Salut Megaten,

Ta réponse est ironique ou injurieuse ?

Si je t'es blessé, je m'en excuse.... :-(

A+

--
fmillox


"Megaten" a écrit :

Merci Frederic je vais pouvoir dormir ce soir
un peu moins bete.

Millox Frédéric a écrit :
> Salut Keita,
>
> Tu peux rajouter :
>
> durée = durée.Substring(0, durée.LastIndexOf(":"))
>
> Simple mais efficace, vu que ton résultat est un String.
>
> P.S. : Les noms de variable avec des accents, c'est pas terrible du tout....
>
> A+
>



Avatar
keita
Merci à tous
cela est effectivement efficace.
Encore merci
1 2