Bonjour à tous, je suis étudiant à l'université (L1), et j'ai un projet à faire en JavaScript (AlgoScript plus précisément, mais ça reprend le JS). J'ai comme projet de faire un calculateur d'itinéraire en transport en commun.
J'ai besoin de donner l'heure à laquelle passe un bus à un arrêt. Pour cela, j'ai écris le code suivant (sans doute pas optimisé, mais j'essaie déjà de faire quelque chose qui fonctionne avant de l'améliorer).
Description des variables :
- DepH1 = Heure de départ de la première rotation de la ligne (initié à 10)
- DepM1 = Minute de départ de la première rotation de la ligne (initié à 45)
- tempsD = Temps de passage à l'arrêt de départ (pour les tests que j'ai fait = 14)
- Arrets[] = Tableau donnant la liste de tous les arrêts
- Ligne1[] = Tableau donnant les temps de passages de la ligne 1
J'ai donc essayé en mettant et en enlevant le = dans la boucle while, mais dans les deux cas, le résultat n'est pas ce que j'attends.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 for (i = 0; i <= (Arrets.length); i = i + 1) { if (AD == Arrets[i]) { tempsD = Ligne1[i] ; } if (AA == Arrets[i]) { tempsA = Ligne1[i] ; } } while ((DepH1 * 60 + DepM1) <= (HD * 60 + DepM1 - tempsD)) { DepM1 = DepM1 + 30 ; if (DepM1 > 59) { DepM1 = DepM1 - 60 ; DepH1 = DepH1 + 1 ; } if (DepH1 > 23) { DepH1 = DepH1 - 24 ; } } DepM1 = DepM1 + tempsD ; if (DepM1 > 59) { DepM1 = DepM1 - 60 ; DepH1 = DepH1 + 1 ; } if (DepH1 > 23) { DepH1 = DepH1 - 24 ; } }
En gros (avec le =), lorsque je veux savoir le prochain bus après 15h35 à un arrêt, je devrais avoir 15h59 (pour l'arrêt choisi). Mais le script choisis d'afficher 15h29. J'ai essayé de changer plusieurs paramètres, mais je retombais à chaque fois sur ce résultat.
Est-ce que quelqu'un aurait une solution à mon problème ?
N'hésitez pas à me demander si vous souhaitez plus d'informations
Cordialement
D. Pageot
Partager