当初のものとは少し異なりますが、
自分がしたかったのは、diaDay === DiaType.WEEKDAY_MARCH_SPECIALとvalue === "平日"、diaDay === DiaType.WEEKDAY_MAY_SPECIALとvalue === "平日"をそれぞれ表示するということでした。
理論上は、同じなので、これで解決ということとさせていただきます。
// 曜日を表す列挙型
const DayOfWeek = {
SUNDAY: 0,
MONDAY: 1,
TUESDAY: 2,
WEDNESDAY: 3,
THURSDAY: 4,
FRIDAY: 5,
SATURDAY: 6
};
// 平日ダイヤと土・休日ダイヤを表す列挙型
const DiaType = {
WEEKDAY: 0,
HOLIDAY: 1,
WEEKDAY_MARCH_SPECIAL: 2, // 特殊ダイヤを追加
HOLIDAY_MARCH_SPECIAL: 3, // 特殊ダイヤを追加
WEEKDAY_MAY_SPECIAL: 4, // 特別ダイヤ3を追加
HOLIDAY_MAY_SPECIAL: 5, // 特別ダイヤ3を追加
SPECIAL3: 6, // 特殊ダイヤを追加
SPECIAL4: 7, // 特殊ダイヤを追加
};
let diaDay = DiaType.WEEKDAY; // 初期値は平日ダイヤ
// 平日ダイヤか土曜日ダイヤか日曜日ダイヤかを判定する
function judgeDiaDay() {
let setYear = nowYear; // 年
let setMonth = nowMonth; // 月
let setDate = nowDate; // 日
let setDay = nowDay; // 曜日
// 特殊ダイヤ1の日付判定、3月16日→8月31日
if ((setMonth === 3 && setDay >= 16 || setMonth === 3 && setDay <= 31)) {
diaDay = dayJudge(setYear, setMonth, setDate, setDay) === "weekday" ? DiaType.WEEKDAY_MARCH_SPECIAL : DiaType.HOLIDAY_MARCH_SPECIAL;
} else if ((setMonth === 5 && setDay >= 3 || setMonth === 5 && setDay <= 6)) {
diaDay = diaDay = dayJudge(setYear, setMonth, setDate, setDay) === "weekday" ? DiaType.WEEKDAY_MAY_SPECIAL : DiaType.HOLIDAY_MAY_SPECIAL;;
} else if ((setMonth === 10 && setDate === 12) || (setMonth === 11 && setDate === 3) || (setMonth === 11 && setDate === 24)) {
diaDay = DiaType.SPECIAL3;
} else if ((setMonth === 6 && setDate === 28) ||(setMonth === 10 && setDate === 9) || (setMonth === 10 && setDate === 31) || (setMonth === 11 && setDate === 21)) {
diaDay = DiaType.SPECIAL4;
} else {
// 平日ダイヤか休日ダイヤの判定
diaDay = dayJudge(setYear, setMonth, setDate, setDay) === "weekday" ? DiaType.WEEKDAY : DiaType.HOLIDAY;
}
// 表示更新
updateDisplayDiaDay();
return diaDay === DiaType.WEEKDAY;
}
// 表示更新
function updateDisplayDiaDay() {
const todayDiaDaySpan = document.getElementById("todayDiaDaySpan");
if (todayDiaDaySpan) {
todayDiaDaySpan.innerHTML = getDiaTypeString(diaDay); // DiaTypeに対応する文字列を取得する関数を使用
todayDiaDaySpan.style.backgroundColor = getDiaTypeColor(diaDay); // DiaTypeに対応する背景色を取得する関数を使用
}
}
// DiaTypeに対応する文字列を取得する関数
function getDiaTypeString(diaType) {
switch (diaType) {
case DiaType.WEEKDAY:
return " 平日ダイヤ ";
case DiaType.HOLIDAY:
return "土・休日ダイヤ";
case DiaType.WEEKDAY_MARCH_SPECIAL:
return " 3月16→31日平日ダイヤ ";
case DiaType.HOLIDAY_MARCH_SPECIAL:
return " 3月16→31日土休日ダイヤ ";
case DiaType.WEEKDAY_MAY_SPECIAL:
return "5月3→5月6日平日ダイヤ";
case DiaType.HOLIDAY_MAY_SPECIAL:
return "5月3→5月6日土休日ダイヤ";
case DiaType.SPECIAL3:
return " 10月9/12/31日・11月3/21/24日ダイヤ ";
case DiaType.SPECIAL4:
return " 10月12日・11月3/24日ダイヤ ";
default:
return "";
}
}
// DiaTypeに対応する背景色を取得する関数
function getDiaTypeColor(diaType) {
switch (diaType) {
case DiaType.WEEKDAY:
return "#9ff"; // 平日ダイヤの背景色
case DiaType.WEEKDAY_MARCH_SPECIAL:
return "#9ff"; // 平日ダイヤの背景色
case DiaType.HOLIDAY:
return "#fcf"; // 土・休日ダイヤの背景色
case DiaType.HOLIDAY_MARCH_SPECIAL:
return "#fcf"; // 土・休日ダイヤの背景色
case DiaType.WEEKDAY_MAY_SPECIAL:
return "#ff9"; // 特殊ダイヤの背景色
case DiaType.HOLIDAY_MAY_SPECIAL:
return "#ff9"; // 特殊ダイヤの背景色
case DiaType.SPECIAL3:
return "#ff9"; // 特殊ダイヤ3の背景色
case DiaType.SPECIAL4:
return "#ff9"; // 特殊ダイヤの背景色
default:
return "";
}
}
// 各列車が本日運転する列車なのかそうでないのかを判定する
// 引数はその列車の運転日情報 例:平日 全日 土・休日
function judgeTrainRunningDay(value) {
// 3月16日から31日までの間に運行する列車のみを表示
if ((diaDay === DiaType.WEEKDAY_MARCH_SPECIAL) && (value === "平日")) return true;
if ((diaDay === DiaType.HOLIDAY_MARCH_SPECIAL) && (value === "土休日")) return true;
if ((diaDay === DiaType.HOLIDAY_MAY_SPECIAL) && (value === "平日")) return false;
if ((diaDay === DiaType.WEEKDAY_MAY_SPECIAL) && (value === "土休日")) return false;
if ((diaDay === DiaType.SPECIAL3 || diaDay === DiaType.SPECIAL4) && (value === "平日" || value === "土休日")) return true;
// 特定の期間中の運休条件を非表示にする
if ((diaDay === DiaType.WEEKDAY_MARCH_SPECIAL || diaDay === DiaType.HOLIDAY_MARCH_SPECIAL||diaDay === DiaType.WEEKDAY_MAY_SPECIAL || diaDay === DiaType.HOLIDAY_MAY_SPECIAL) && (value === "3月16→3月31日・5月3→6日平日運休"||value === "3月16→3月31日・5月3→6日土休日運休")) return false;
// それ以外の場合は通常の条件判定を行う
if (value === "全日") return true;
if ((value === "3月16→3月31日・5月3→6日平日運休") || value === "平日" && (diaDay === DiaType.WEEKDAY || diaDay === DiaType.WEEKDAY_MAY_SPECIAL || diaDay === DiaType.HOLIDAY_MAY_SPECIAL)) return true;
if (value === "土曜・休日運休" && (diaDay === DiaType.WEEKDAY ||diaDay === DiaType.WEEKDAY_MAY_SPECIAL || diaDay === DiaType.HOLIDAY_MAY_SPECIAL)) return true;
if (value === "毎日運転" && (diaDay === DiaType.WEEKDAY ||diaDay === DiaType.WEEKDAY_MAY_SPECIAL || diaDay === DiaType.HOLIDAY_MAY_SPECIAL)) return true;
if ((value === "3月16→3月31日・5月3→6日土休日運休") || value === "休日" && (diaDay === DiaType.HOLIDAY ||diaDay === DiaType.WEEKDAY_MAY_SPECIAL || diaDay === DiaType.HOLIDAY_MAY_SPECIAL)) return true;
if (value === "土休日" && (diaDay === DiaType.HOLIDAY ||diaDay === DiaType.WEEKDAY_MAY_SPECIAL || diaDay === DiaType.HOLIDAY_MAY_SPECIAL)) return true;
if (value === "土・休日" && (diaDay === DiaType.HOLIDAY ||diaDay === DiaType.WEEKDAY_MAY_SPECIAL || diaDay === DiaType.HOLIDAY_MAY_SPECIAL)) return true;
if (value === "土曜・休日運転" && (diaDay === DiaType.HOLIDAY ||diaDay === DiaType.WEEKDAY_MAY_SPECIAL || diaDay === DiaType.HOLIDAY_MAY_SPECIAL)) return true;
if (value === "毎日運転" && (diaDay === DiaType.HOLIDAY ||diaDay === DiaType.WEEKDAY_MAY_SPECIAL || diaDay === DiaType.HOLIDAY_MAY_SPECIAL)) return true;
if (value === "10月9/12/31日・11月3/21/24日" && ((diaDay === DiaType.SPECIAL3)||(diaDay === DiaType.SPECIAL4))) return true;
if (value === "10月12日・11月3/24日" && diaDay === DiaType.SPECIAL3) return true;
if (value === "3月16→3月31日・5月3→6日運転" && ((diaDay === DiaType.WEEKDAY_MARCH_SPECIAL || diaDay === DiaType.HOLIDAY_MARCH_SPECIAL)||(diaDay === DiaType.WEEKDAY_MAY_SPECIAL || diaDay === DiaType.HOLIDAY_MAY_SPECIAL))) return true;
if (value === "3月16→31日運転" && (diaDay === DiaType.WEEKDAY_MARCH_SPECIAL || diaDay === DiaType.HOLIDAY_MARCH_SPECIAL)) return true;
if (value === "5月3→6日運転" && (diaDay === DiaType.WEEKDAY_MAY_SPECIAL || diaDay === DiaType.HOLIDAY_MAY_SPECIAL)) return true;
return false;
}
// 平日ダイヤと土・休日ダイヤと特殊ダイヤの入れ替え
function changeDiaType() {
switch (diaDay) {
case DiaType.WEEKDAY:
diaDay = DiaType.HOLIDAY;
break;
case DiaType.HOLIDAY:
diaDay = DiaType.WEEKDAY_MARCH_SPECIAL;
break;
case DiaType.WEEKDAY_MARCH_SPECIAL:
diaDay = DiaType.HOLIDAY_MARCH_SPECIAL;
break;
case DiaType.HOLIDAY_MARCH_SPECIAL:
diaDay = DiaType.WEEKDAY_MAY_SPECIAL;
break;
case DiaType.WEEKDAY_MAY_SPECIAL:
diaDay = DiaType.HOLIDAY_MAY_SPECIAL;
break;
case DiaType.HOLIDAY_MAY_SPECIAL:
diaDay = DiaType.SPECIAL3;
break;
case DiaType.SPECIAL3:
diaDay = DiaType.SPECIAL4;
break;
case DiaType.SPECIAL4:
diaDay = DiaType.WEEKDAY;
break;
default:
break;
}
// 表示更新
updateDisplayDiaDay();
// 時刻表データ再読み込み
getTimeTable();
// 再表示
setNewTime(setSecondSum);
// 路線図に列車を配置していく
drawTrain();
// 時刻表スペースをリセット
resetTimetableSpace();
}
//時刻表を表示する関数
function getTrainTimetableInfo(key)
{
alert(key);
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。