Итак, я начинаю с двух простых вещей :
- Список временных интервалов с соответствующим ему именем интервала.
- И currentTime , например, например (
"08:58"
, "15:23"
, "02:03"
).
let intervals = {
"08:00 - 09:00" : "Morning yoga",
"09:00 - 10:00" : "Breakfast",
"10:00 - 13:00" : "School Period",
"13:00 - 14:00" : "Basketball",
"14:00 - 16:00" : "Free Period",
"16:00 - 17:00" : "Evening Meal",
"17:00 - 18:00" : "Exercise Period",
"18:00 - 19:00" : "Shower Block",
"19:00 - 22:00" : "Evening Free Time",
"22:00 - 23:00" : "Evening Rollcall",
"23:00 - 08:00" : "Lights Out"
}
Я хотел бы извлечь интервал имя для данного currentTime , так что я получаю, например, от:
"08:58"
результат: "Morning yoga"
"15:23"
результат: "Free Period"
"02:03"
результат: "Lights Out"
Пока я получил код ниже, но, очевидно, внутри есть некоторые ошибки.
let getSchedule = function(time) {
let scheduleIndex = 0;
let current = getMinute(time);
let intervalArray = []
for (let key in schedule)
intervalArray.push([getMinute(key.split(" - ")[0]),
getMinute(key.split(" - ")[1])
]);
for (let index = 0; index < intervalArray.length; index++) {
let interval = intervalArray[index]
if (current >= interval[0] && current < interval[1]) {
scheduleIndex = index;
break;
}
};
return schedule[Object.keys(schedule)[scheduleIndex]]
}
let getMinute = function(time) {
let hour = parseInt(time.split(":")[0]),
minute = parseInt(time.split(":")[1]);
return minute + hour * 60;
}
let result = getSchedule("16:22")
console.log(result)
result = getSchedule("02:00")
console.log(result)
<script>
let schedule = {
"08:00 - 09:00": "Morning yoga",
"09:00 - 10:00": "Breakfast",
"10:00 - 13:00": "School Period",
"13:00 - 14:00": "Basketball",
"14:00 - 16:00": "Free Period",
"16:00 - 17:00": "Evening Meal",
"17:00 - 18:00": "Exercise Period",
"18:00 - 19:00": "Shower Block",
"19:00 - 22:00": "Evening Free Time",
"22:00 - 23:00": "Evening Rollcall",
"23:00 - 08:00": "Lights Out"
}
</script>
Редактировать : обратите внимание, что полные часы изменят состояние так, что 23: 00 будет иметь состояние Lights Out
, в то время как 22: 59 имеет состояние Evening Rollcall
.
Обратите внимание, что я не могу изменить объект intervals
.Это структура должна быть сохранена.