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


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 ;
  }
}
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.

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