Heures,minutes et secondes

Signaler
Messages postés
507
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
13 mai 2009
-
Messages postés
507
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
13 mai 2009
-
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

Messages postés
182
Date d'inscription
dimanche 18 août 2002
Statut
Membre
Dernière intervention
5 janvier 2004
3
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
Messages postés
507
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
13 mai 2009
1
Ben en fait, même avec formatnumber ca marche pas... donc bon : HELP, HELP.. RE-HELP.
0
Messages postés
182
Date d'inscription
dimanche 18 août 2002
Statut
Membre
Dernière intervention
5 janvier 2004
3
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
Messages postés
73
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
20 février 2003

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
Messages postés
507
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
13 mai 2009
1
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