И какие проблемы? Расписание, это одинаковые интервалы времени на известной шкале времени. Следовательно вполне можно обойтись без всяких 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);
//первый запуск функции отобразит текущий, первый, урок