Итак. Я хочу определить, открыт ли магазин или нет. Значения в базе данных выглядят следующим образом: открыто с 8 до 18 (например, днем), открыто с 20 до 2 (например, ночью), открыто с... ... Проблема не в дне, а в ранние утренние часы, потому что это следующий день.
Код: Выделить всё
AventurienDate from, to;
int HourFrom = 18; // shop open from
int HourTo = 8; // shop open to
bool hasopen = false;
AventurienDate now;
now.set(1025, 4, 26, 1); // Year, month, day, hour
from.set(1025, 4, now.Day, HourFrom);
to.set(1025, 4, now.Day, HourTo);
if(from < to || from == to)
hasopen = (from < now || from == now) && (to > now || to == now);
else {
to.addHours(24);
if(now.Hours >= HourFrom && now.Hours now || to == now);
}
qDebug()
Подробнее здесь: [url]https://stackoverflow.com/questions/78855868/how-can-you-determine-whether-a-point-in-time-is-within-a-time-period[/url]
Мобильная версия