Add free functions isHoliday() to check if the current day is a holiday
and previousDayHoliday() to check if previous day (relative to endtime) is a holiday.
This commit is contained in:
		@@ -1838,3 +1838,42 @@ Configuration::getWeekDayWorkTime(QTime const &time, Qt::DayOfWeek dayOfWeek) {
 | 
			
		||||
 | 
			
		||||
    return value;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool isHoliday(Configuration const &cfg, QDateTime const &t) {
 | 
			
		||||
    int const weekDay = t.date().dayOfWeek();
 | 
			
		||||
    for (auto[iter, rEnd] = cfg.WeekDays.equal_range(static_cast<Qt::DayOfWeek>(weekDay));
 | 
			
		||||
         iter != rEnd;
 | 
			
		||||
         ++iter) {
 | 
			
		||||
 | 
			
		||||
        if (iter->second.m_type == ATBWeekDay::WeekDayType::HOLIDAY) {
 | 
			
		||||
            QDate const &d = iter->second.m_date;
 | 
			
		||||
            if (!d.isNull() && d.isValid()) {
 | 
			
		||||
                if (t.date() == d) {
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool previousDayHoliday(Configuration const &cfg, QDateTime const &t) {
 | 
			
		||||
    int const weekDay = t.date().dayOfWeek();
 | 
			
		||||
    int const previousWeekDay = (weekDay == static_cast<int>(Qt::Monday)) ?
 | 
			
		||||
                static_cast<int>(Qt::Sunday) : (weekDay - 1);
 | 
			
		||||
 | 
			
		||||
    for (auto[iter, rEnd] = cfg.WeekDays.equal_range(static_cast<Qt::DayOfWeek>(previousWeekDay));
 | 
			
		||||
         iter != rEnd;
 | 
			
		||||
         ++iter) {
 | 
			
		||||
 | 
			
		||||
        if (iter->second.m_type == ATBWeekDay::WeekDayType::HOLIDAY) {
 | 
			
		||||
            QDate const &d = iter->second.m_date;
 | 
			
		||||
            if (!d.isNull() && d.isValid()) {
 | 
			
		||||
                if (t.addDays(-1).date() == d) {
 | 
			
		||||
                    return true;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user