Я предполагаю, что есть также ограничение, что конечная точка> = начальная точка.
Самый простой способ - нормализоваться до «часов с начала недели».
double interest = day * 24 + hours;
double startWeekend = startDay * 24 + startHours;
double endWeekend = endDay * 24 + endHours.
bool isInWeekend = interest >= startWeekend && interest < endWeekend;
Настройте <= и> = по желанию.
Редактировать:
Если проблема в том, что выходные могут перекрывать 7 * 24-часовую границу, тогда становится немного интереснее:
if startWeekend < endWeekend
then isInWeekend = interest >= startWeekend AND interest < endWeekend;
else isInWeekend = interest >= startWeekend OR interest < endWeekend;
(слегка смешанный C/ Псевдокод Паскаля)