Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Не работают временные участки (https://javascript.ru/forum/dom-window/66871-ne-rabotayut-vremennye-uchastki.html)

IvanSteklow 15.01.2017 15:54

Не работают временные участки
 
Я хочу сделать расписание в школе, так чтобы в определенное время текущий урок менялся. Код у меня есть, но он не работает. Т.к. он разделен на файлы прошу посмотреть на CODEPEN
Пожалуйста, :help:

laimas 15.01.2017 16:49

Перерывы между уроками постоянны? Если да, то уроки это массив, а текущий урок это индекс массива как часы+минуты деленные на длительность урока плюс перерыв.

IvanSteklow 15.01.2017 20:05


Во время перерывов должен показываться следующий урок

laimas 15.01.2017 20:43

И какие проблемы? Расписание, это одинаковые интервалы времени на известной шкале времени. Следовательно вполне можно обойтись без всяких if(больше,меньше) else ... Пусть:

var lessons = ['A', 'B', 'C', ....], //уроки 
    duration = Х, //продолжительность урока в минутах
    rest = Х, //длительность перемены в минутах 
    start = часы * 60 + минуты; //начало занятий выраженное в минутах

//тогда в функции вызываемой по таймеру каждую минуту
var d = new Date();
lessons[parseInt((d.getHours() * 60 + d.getMinutes() - start) / duration)]; //это следующий урок
start -= rest; //корректируем время старта на перерыв
setTimeout(this_function, 1000 * 60);
//первый запуск функции отобразит текущий, первый, урок


Часовой пояс GMT +3, время: 10:25.