Une question sur les dates .....

bibilafrayeur Messages postés 59 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 26 juillet 2007 - 5 mai 2004 à 16:42
bibilafrayeur Messages postés 59 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 26 juillet 2007 - 5 mai 2004 à 18:20
Bonjour tout le monde je suis en train de bosser sur un logiciel de gestion de course (course à pied, course de vélo ....)

Je me débrouille assez bien, aussi j'arrive à connaitre en secondes le temps de course de chaque coureur.

Pourquoi en secondes ? Tout simplement parce qu'il arrive que des coureur soient en paquet et qu'il faut compter les secondes pour les départager.

Seulement voilà, avec mes secondes de course j'aimerai rendre l'affichage plus lisible pour les personnes qui n'ont pas envie de convertir les secondes. Mais avec VB je n'y arrive pas. Enfin je n'y arrive presque pas, j'utilisie la fonction Timeserial qui ne peut pas interpréter plus de 32767 secondes (Ce qui représente 9H 6 minutes et 7 secondes) !!
C'est très génant surtout qu'il existe des épreuve sportive pouvant atteindre plus de 24 heure (soit 86400 secondes)

En fait moi j'aimerai savoir quelle est la technique (peut être il existe un activeX ?) qui permettrait de convertir un nombre important de seconde en Jour/Heure/Minutes/Secondes

Merci beaucoup de votre aide !!! ;)

2 réponses

alicvb Messages postés 134 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 juin 2007 1
5 mai 2004 à 17:21
Pourquoi tu le calcule pas "à la main" avec un truc du style :

'val est le nombre de secondes
dim j as integer 'nombre de jours
dim h as integer 'nombre d'heures
dim m as integer 'nombre de minutes
dim s as integer 'nombre de secondes

j=val\86400
h=(val-j*86400)\3600
m=(val-j*86400-h*3600)\60
s=val-j*86400-h*3600-m*60

Attention, il faudra peut-être que tu utilise des types Long au lieu des integer si tu as des dépacements de capacité...
0
bibilafrayeur Messages postés 59 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 26 juillet 2007
5 mai 2004 à 18:20
J'ai fait comme ceci (notez la division se fait \ pour avoir l'entier)

Dim test As Double
test = 87523
Dim v_jour As Integer
Dim v_heure As Integer
Dim v_minute As Integer
Dim v_seconde As Integer

'Si plus d'un jour
If test >= 86400 Then
v_jour = Format(test \ 86400, "0")
test = test - v_jour * 86400
End If

'si plus d'une heure
If test >= 3600 Then
v_heure = Format(test \ 3600, "0")
test = test - v_heure * 3600
End If

'Si plus d'une minute
If test >= 60 Then
v_minute = Format(test \ 60, "0")
test = test - v_minute * 60
End If

'Le restant ce sont des secondes
v_seconde = test

MsgBox (v_jour & " jour(s) " & v_heure & " heure(s) " & v_minute & " minute(s) " & v_seconde & " seconde(s)")

Merci de ton aide !! :)
0
Rejoignez-nous