Heures,minutes et secondes

cs_stailer Messages postés 507 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 13 mai 2009 - 20 août 2002 à 02:48
cs_stailer Messages postés 507 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 13 mai 2009 - 20 août 2002 à 12:39
Salut la compagnie !

Bon voila, je suis hyper mauvais en Maths.
Alors j'aurai une petite question :

J'ai un nombre : 1661 par exemple. Je voudrais convertir ou calculer ce nombre pour qu'il apparaisse comme ceci : X heure, X minutes et X secondes.

Pour l'instant j'utilise Formatnumber((temps /60)/60,2) et ca me donne pour 1661 : 0,46 heure(s) . C'est pas top.

Merci à l'avance pour votre aide.

A++, Stailer.

5 réponses

cs_raff Messages postés 182 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 5 janvier 2004 3
20 août 2002 à 07:01
allez excuses-moi voilà la vraie réponse :
avec 1661 ça donne 0 heures, 27 minutes, 41 secondes .... t'as juste à remplacer le 1661 par une variable!
dim m
dim h
dim s

m = Split(1661 / 60, ",")
h = Split(m(0) / 60, ",")
s = (1661 / 60 - m(0)) * 60

résultat = h(0) & "heures," & m(0) & "minutes," & s & "secondes"
1
cs_stailer Messages postés 507 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 13 mai 2009 1
20 août 2002 à 02:58
Ben en fait, même avec formatnumber ca marche pas... donc bon : HELP, HELP.. RE-HELP.
0
cs_raff Messages postés 182 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 5 janvier 2004 3
20 août 2002 à 06:42
bon alors c'est facile...

regarde...si tu divises 1661 par 60 ça te donnes le nombre de minutes. Alors, si ce nombre est inférieur à 60 (comme c'est le cas ici), alors tu n'as qu'à tronquer les décimales, garder le nombre ainsi obtenu (un entier - les minutes), puis multiplier la partie tronquée par 60, ça te donneras les secondes. Finalement, ça revient à arrondir le nombre au plus près multiple de 60 (ou de 3600 d'abord, pour les heures....), en gardant les dernières unités comme des secondes...

alors simplement, dans vb, tu fais ceci:

h = Split(1661 / 3600, ",")
m = Split(1661 / 60, ",")
s = (1661 / 60 - m(0)) * 60

résultat = h(0) "heures," & m(0) & "minutes," & s & "secondes"
0
JeffLC Messages postés 73 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 20 février 2003
20 août 2002 à 09:44
Pourquoi ne pas utiliser Int qui renvoie un entier plutot que split qui renvoie un tableau de chaine.
Dim m as Integer
Dim h as Integer
Dim s as Integer
h=Int(1661/3600)
m=Int(1661/60)
s=1661-60*m
Ce qui te donnes trois entiers comprenant les bonnes valeurs (ce qui peut être utile si tu souhaites les réutilisées)
Voila, bonne prog.
0

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

Posez votre question
cs_stailer Messages postés 507 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 13 mai 2009 1
20 août 2002 à 12:39
Salut !

Ok, merci à tous pour vos réponses. En fait j'ai utilisé Mod pour faire mon calcul, grâce à un message sur le forum qui posait à peu prés la même question que moi).

Ceci dit je ne connaissais pas Int et Split, alors hop ! un petit copier-coller !

A++
0
Rejoignez-nous