六帖webアプリ
kickzone/TrainNavi2 · GitHub
一昨日の懸案、列車走行時刻が0時をまたぐ場合を考慮したSQL文を作成した。
starttime <= ToTime and FromTime <= endtime
これをstarttimeが日付をまたぐ場合(starttime>endtime)、またがない場合(starttime<=endtime)に分割し、
(starttime <= endtime AND starttime <= ToTime AND FromTime <= endtime)
OR (starttime > endtime AND ((starttime <= ToTime AND FromTime <= "24:00") OR ("0:00" <= ToTime AND FromTime <= endtime)))
まずこう変更した。しかし FromTime <= "24:00" と "0:00" <= ToTime には意味がない。自明だから。なので、最終的には
(starttime <= endtime AND starttime <= ToTime AND FromTime <= endtime)
OR (starttime > endtime AND (starttime <= ToTime OR FromTime <= endtime))
となった。意外にもすっきりしている。これで新幹線や長距離特急列車も問題なくなった。やった。来週はFileAPIの実装を始めよう。
現在時速を表示する機能を付けたものの、かなりインチキな速度になっている。というのも、加減速にかかる時間・列車停車時間を全列車共通にしているから。井の頭線や小田急の各停なんて、停車までに30秒もかからないはずだけど60秒かけるような設定になっていたり、駅で1分も停車しないはずだけど時刻表通りに実装していたり、これらのせいで最高速度が各停で150km/hになってしまったりする。もう少しそれっぽくできないかなぁ。