六帖のかたすみ

DVを受けていた男性。家を脱出して二周目の人生を生きています。自閉症スペクトラム(受動型)です。http://rokujo.org/ に引っ越しました。

明日から真冬か

とうとう最高気温も10度まで下がるようです。足が冷たい。猫の小屋からは猫蒸気が小屋の底と床に染み渡るようになりました。通称猫汁
六帖webアプリ
総武緩行線東西線東葉高速線
京王井の頭線 <京王線系統全部終了
大雄山線
まで追加終了した。大雄山線は電車を見ると和むのに、ダイヤは完全なパターンで平日も土日も全く同じで面白味が全くない。特急かいじ、あずさ、ホームライナー千葉は総武快速線を実装するまで保留。次は田園都市線-半蔵門線-東武伊勢崎線系列だが、田園都市線大井町線に乗り入れていることが判明したので、大井町線も一緒に実装しないといけない。複々線区間の割り振りが難しい。
伊勢崎線は新栃木だの会津田島だの尋常じゃないくらい長大な系列であることも判明したので、とりあえず押上経由で乗り入れする分だけ実装する。
とまらない。
1点、以前からの課題がある。列車を読み込む際のSELECT文が不完全なことだ。ある時刻の範囲に存在する列車の一覧を得たい。
いまは

$query = "SELECT distinct trainname FROM tnroute WHERE linename='$lines[$i]' 
  AND starttime>=\"".$_POST['FromTime']."\" and starttime<=\"".$_POST['ToTime']."\" 
  AND service=".$_POST['Service'];

と、starttime(列車の発車時間)しか見ていない。これだと、from〜toが例えば1分間だった場合に、10分間無停車の電車が引っかからない。新幹線なら1時間以上止まらない列車だってある。
なんとか、starttime〜endtime(列車の到着時刻)とfrom〜toが重なる列車の一覧を持ってきたい。
2つの期間が重なり合うかどうかを判定する。 - こせきの技術日記
これを参考にすれば、X <= B && A <= Y すなわち starttime <= ToTime and FromTime <= endtime でもよさそうだが、starttime, endtimeが日付をまたぐことがある。starttimeが23時55分、endtimeが0時5分などの場合だ。これをどのように処理すればいいのか。この課題が解決できれば、どれだけfromとtoの間を狭くしても電車を正しく読み込める。