Page 1 sur 1
Calcul de temps entre une distance et une vitesse
Publié : mer. 14/sept./2011 12:21
par GallyHC
Bonjour,
J'ai fait cette petite fontion pour calculer le temps d'un deplacement entre le nombre de Km et la vitesse en Km/h. Je ne sais pas du tout si cela sera utile a quelqu'un mais bon je vous la partage tout de même.
Code : Tout sélectionner
Procedure.s KmbyTime(lkm.f, speed.l)
;
Define result.f
result = (lkm * 1000) / ((speed * 1000) / 3600)
ProcedureReturn FormatDate("%hh:%ii:%ss", result)
EndProcedure
; KmbyTime(Distance, Vitesse)
Debug KmbyTime(320, 130)
J'ai aussi mis le code sur mon site a l'adresse "
http://koakdesign.info/news/?url=4d&val=33"
Cordialement,
GallyHC
Re: Calcul de temps entre une distance et une vitesse
Publié : mer. 14/sept./2011 12:35
par Ar-S
Cool
merci, ça sent l'option sur maxibox non ?
Re: Calcul de temps entre une distance et une vitesse
Publié : mer. 14/sept./2011 12:48
par GallyHC
Salut Ar-s,
Heuuuuu, peu etre lolll
Cordialement,
GallyHC
Re: Calcul de temps entre une distance et une vitesse
Publié : mer. 14/sept./2011 17:24
par Kwai chang caine
Merci du partage, fallait y penser

Ca peu toujours être utile..on sait jamais
Re: Calcul de temps entre une distance et une vitesse
Publié : mer. 14/sept./2011 23:57
par GeBonet
Merci,
Mais essais un peu :
Debug KmbyTime(900, 30)
ou bien en générale un nombre de Km qui ferais qu'a cette vitesse là, ça dépasse 24 heures !!!
En gros il manque les jours...
comme par exemple SOLUTION :
Code : Tout sélectionner
Procedure.s KmbyTime(lkm.f, speed.l)
Shared NbJour
Define result.f
NbJour=Int(lkm.f/speed.l/24)
result.f=(lkm.f-(NbJour*24*speed.l))/speed*3600
ProcedureReturn FormatDate("%hh:%ii:%ss", result)
EndProcedure
; KmbyTime(Distance, Vitesse)
Temp$=KmbyTime(8590,84)
Debug Str(NbJour)+" jours "+Temp$
Voilà, voilà...
Re: Calcul de temps entre une distance et une vitesse
Publié : jeu. 15/sept./2011 11:39
par GallyHC
Bonjour,
On ajoute simplement %dd et le texte et cela devrais fonctionner.
Code : Tout sélectionner
Procedure.s KmbyTime(lkm.f, speed.l)
;
Define result.f
result = (lkm * 1000) / ((speed * 1000) / 3600)
ProcedureReturn FormatDate("%dd jour(s) et %hh:%ii:%ss", result)
EndProcedure
; KmbyTime(Distance, Vitesse)
Debug KmbyTime(8590, 84)
Cordialement,
GallyHC
Re: Calcul de temps entre une distance et une vitesse
Publié : jeu. 15/sept./2011 15:15
par Backup
GallyHC a écrit :Bonjour,
On ajoute simplement %dd et le texte et cela devrais fonctionner.
non !
Code : Tout sélectionner
Procedure.s KmbyTime(lkm.f, Speed.l)
;
Define Result.f
Result = (lkm * 1000) / ((Speed * 1000) / 3600)
ProcedureReturn FormatDate("%dd jour(s) et %hh:%ii:%ss", Result)
EndProcedure
; KmbyTime(Distance, Vitesse)
Debug KmbyTime(40, 40)
devrai ecrire 0 jours , 1 heure
hors ça ecris 1 jours, 1 heure ...

c'est pas pareil ....

Re: Calcul de temps entre une distance et une vitesse
Publié : jeu. 15/sept./2011 15:19
par GallyHC
Bonjour,
Dobro> merci pour l'info je pense que sa aurait pu fonctionner je vais revoir cela. bon le calcul de base est bon, je vais voir a ajouter cette fonction.
Cordialement,
GallyHC
PS: pour mon truc a moi sa parte d'un calcul qui ne devrais pas depasser 5h donc cela ete bon (POUR MOI).
Re: Calcul de temps entre une distance et une vitesse
Publié : jeu. 15/sept./2011 15:22
par GeBonet
@Dobro
Exactement... Et c'est bien pour cela que j'ai joins l'exemple... Ci dessus !!!
Voilà, voilà..
@GallyHC
A Noter que "FormatDate("%hh:%ii:%ss", Date() )" n'est qu'une forme de présenter Date() et composantes inclue comme "hh:mm:ss"
Donc %dd comme %mm ne peuvent être dissocié d'une date() et
donc tant qu'on lui donne quelque chose inférieur à 24 heures pas de problème on peut l'utiliser, au delà il faut que ce soit une date, sinon cela n'as plus de sens du moins pour ce qui est des jours, mois...
Extrait de la DOC ou F1 sur Date()
Renvoie la valeur du temps système (nombre de secondes écoulées depuis le '01/01/1970 0:00:00').
Si les variables Année, Mois, Jour, Heure, Minute et Seconde sont spécifiées, la représentation en secondes de cette date est retournée. FormatDate() peut être utilisé pour transformer la date en format utilisateur.
Voilà.

Re: Calcul de temps entre une distance et une vitesse
Publié : jeu. 15/sept./2011 17:46
par GallyHC
Bonjour,
Je penses que comme cela c mieu mais pas parfait
Code : Tout sélectionner
Procedure.s KmbyTime(lkm.f, speed.l)
;
Define result.f
result = (lkm * 1000) / ((speed * 1000) / 3600)
If result < 86400
Debug FormatDate("%hh:%ii:%ss", result)
Else
Debug FormatDate("%dd jour(s) et %hh:%ii:%ss", result)
EndIf
EndProcedure
; KmbyTime(Distance, Vitesse)
Debug KmbyTime(8590, 84)
Debug KmbyTime(84, 84)
Debug KmbyTime(60, 84)
Cordialement,
GallyHC
Re: Calcul de temps entre une distance et une vitesse
Publié : jeu. 15/sept./2011 19:33
par GeBonet
@GallyHC
Excuse moi,
mais je crois que tu n'as pas lu ce que j'ai passé de la doc officielle... Ni même essayé l'exemple que je place ci dessus !
L'exemple que je met plus haut ne touche pas à %dd et n'en est pas dépendant !
Ce que tu place là, fonctionne mais jusque ou ???
Imagine que la distance reste 8950 ou plus et la vitesse 15 Km/hrs, il faudra y inclure des mois, et de nouveau il faudrait introduire des :
If result < 86400 ???
Debug FormatDate("%hh:%ii:%ss", result)
Else
Debug FormatDate("%dd jour(s) et %hh:%ii:%ss", result)
EndIf
pour chaque niveau de temps ou distance...
Je penses que comme cela c mieux mais pas parfait

OUI mais pas une solution...
Il y a une base d'exemple ci dessus qui respect des règles de calcul normale comme :
Ors pour moi ? FAIT a la calculatrice et à la main...
8590 Klm / 84 km/h = En Heures => 102.2619.. ou 102 heures et 2619.. unitée
ou en jours: 102.2619 / 24 heures = 4.2609126984126986 (4 jours +...)
Donc 8590 à faire - (4 jours à 84 Klm/hrs) ==> 8064 Klm
Et donc 8590 - 8064 = Reste 526 klm/84Km/h ==> 06:15:43
D’où résultat 4 Jours et 6 heures 15 minutes et 43 secondes.
Cordialement aussi !
Re: Calcul de temps entre une distance et une vitesse
Publié : jeu. 15/sept./2011 20:36
par GallyHC
@GeBonet,
Ok merci comme je disait perso c'ete pour une calcul qui ne depasse pas 5h donc tout ete bon pour ma part. Je vais tout de meme jour a essaye de faire le calcul complet comme cela vous serez content
Cordialement,
GallyHC
Re: Calcul de temps entre une distance et une vitesse
Publié : jeu. 15/sept./2011 21:52
par GeBonet
GallyHC a écrit :@GeBonet,
Ok merci comme je disait perso cette pour une calcul qui ne depasse pas 5h donc tout ete bon pour ma part. Je vais tout de même jour a essaye de faire le calcul complet comme cela vous serez content

Cordialement,
GallyHC
C'est gentil, mais pas la peine de vous tracasser pour moi, j'ai des solutions...
Dont celle que J'AI PLACÉE ci-dessus

Ou forme détaillée ci-dessous !
Merci.
Pour Rappel :
Code : Tout sélectionner
Procedure.s KmbyTime(lkm.f, speed.l)
;
Shared NbrJours.i
Define result.f
;
NbrHeures.f = lkm/speed ; 1 - Nombre d'heures utiles
NbrJours = Int(NbrHeures.f/24) ; 2 - Nombre de jours utiles
ResteEnKlm = lkm-(NbrJours*24*speed) ; 3 - Klm restant en plus des jours (s'il y a lieu)
; Debug : Pour vérification.... A supprimer !
Debug "======================================="
Debug "Total Heures Utile : "+StrF(NbrHeures) ; Affiche réponse 1
Debug "Nombre de Jours : "+Str(NbrJours) ; Affiche réponse 2
Debug "Km en Heures : "+Str(ResteEnKlm) ; Affiche réponse 3
Debug "======================================="
;
result = ResteEnKlm / (speed / 3.6) * 1000 ; Forme pour les Kilomètres restants !
ProcedureReturn FormatDate("%hh:%ii:%ss", result)
EndProcedure
; KmbyTime(Distance, Vitesse)
TempRestant$=KmbyTime(8590, 84)
Debug "> Nombre de jours : "+Str(NbrJours)+" et "+TempRestant$
Debug "============================================================"
;
End
; =============================================================
; Et ICI pour 8590 Klm à 84 klm/hrs
; on doit avoir "4 jours et 06 Hrs 15 Min 43 Sec.
; =============================================================
; Alors passons par la case départ et faisons ça à la main...
; ------------------------------------------------------------------------------------------------------------
; Ors pour moi ? FAIT a la calculatrice et à la main...
; 8590 Klm / 84 km/h = En Heures => 102.2619.. ou 102 heures et 2619.. unitée
; ou en jours: 102.2619 / 24 heures = 4.2609126984126986 (4 jours +...)
;
; Donc 8590 à faire - (4 jours à 84 Klm/hrs) ==> 8064 Klm
; Et donc 8590 - 8064 = Reste 526 klm/84Km/h ==> 06:15:43 D'ou 4 Jours et 6 heures 15 minutes et 43 secondes.
; ----------------------------------------------------------------------------------------------------
Re: Calcul de temps entre une distance et une vitesse
Publié : jeu. 15/sept./2011 22:53
par beruska
Tout simple:
Code : Tout sélectionner
Procedure.s kmbytime(d.f, v.f)
Shared jours,heures,minutes,secondes
t.f = d/v
t = t/24
jours = Int(t)
t = (t - Int(t)) * 24
heures = Int(t)
t = (t - Int(t)) * 60
minutes = Int(t)
t = (t - Int(t)) * 60
secondes = Round(t, #PB_Round_Nearest)
Debug Str(jours) + " jour(s) " + Str(heures) + " h " + Str(minutes) + " mn " + Str(secondes) + " s."
EndProcedure
kmbytime(8590, 84)
kmbytime(350, 130)
kmbytime(72, 90)
kmbytime(7289, 18)
Salve!
Re: Calcul de temps entre une distance et une vitesse
Publié : ven. 16/sept./2011 9:06
par GeBonet
Ben, oui, revenir au base du calcul !!! C'est toujours juste pour tout cas !
Maintenant à la décharge de "GallyHC" c'est que pour SON problème il n'as besoin que
d'un valeur pouvant-être facilement donné par FormaDate(....,Date()).
Mais alors dans son cas (- de 24Heures), pourquoi pas utiliser directement et simplement :
Code : Tout sélectionner
NbKm.f=155:Vitesse.f=24
Debug FormatDate("%hh:%ii:%ss", (NbKm / Vitesse) * 3600 )
OU
Attention :
155.00 et non 155 c'est ce qui marque la différence entre l'Entier et le Flottant
Et c'est tout !
