2015/07/23

【JavaScript】バスの時刻表を作る

JavaScriptの勉強用に作ってみました。
時刻表の一覧と現在時刻を照らし合わせて、現在時刻以降のものだけを表示するようにしています。
// 現在時刻を取得する
var nowTime = new Date();
var nowYear = nowTime.getFullYear();
var nowMonth = nowTime.getMonth()+1;
var nowDay = nowTime.getDate();
var nowWeek = nowTime.getDay();
var yobi= new Array("日","月","火","水","木","金","土");
var nowHour = nowTime.getHours();
var nowMinute = nowTime.getMinutes();
// 現在時刻を表示する
document.write("現在時刻: "+nowMonth+"月"+nowDay+"日 "+"("+yobi[nowWeek]+")"+nowHour+"時"+nowMinute+"分");
document.write("<br/>");
// 時刻表を設定する
var timeTable = [
  [7,5],
  [8,5],[8,20],
  [9,0],[9,15],[9,30],[9,45],
  [10,20],[10,50],
  [11,20],[11,50],
  [12,20],[12,50],
  [13,20],[13,50],
  [14,20],[14,50],
  [15,20],[15,50],
  [16,20],[16,50],
  [17,20],[17,50],
  [18,20],[18,50],
  [19,15],[19,35],[19,55],
  [20,15],[20,35],[20,55],
  [21,35],
  [22,10]
];
//  timeTable内の配列の個数に合わせる
var tableMax =33;

//  時刻表を表示する
for(i=0; i<tableMax; i++){
  var timeTableHour = timeTable[i][0];
  var timeTableMinute = timeTable[i][1];
  var timeTableTime = new Date(nowYear+"/"+nowMonth+"/"+nowDay+" "+timeTableHour+":"+timeTableMinute);
  if(nowTime < timeTableTime){
    document.write(timeTableHour+":"+timeTableMinute);
    document.write("<br/>");
  } else {
    document.write("発車予定時刻を過ぎました。");
    document.write("<br/>");
  }
}
テストページ

平日と土日で時刻表が変わることやスマホ対応などには全く考慮していない簡易版です。
timeTableの配列を弄るだけでも、行先の追加など高機能化ができるかと思います。