def timechecker(pickuptime, firstdeliverytime, SLA): # Find the number of nonworking days secondsinaday = 60 * 60 * 24 pickuptime_obj, firstdeliverytime_obj = time.localtime(pickuptime), time.localtime(firstdeliverytime) pickuptime_seconds, firstdeliverytime_seconds, SLA_seconds = time.mktime(pickuptime_obj), time.mktime(firstdeliverytime_obj), SLA * secondsinaday publicholiday_mon_day = [ [3,25],[3,30],[3,31] ] totalnonworkingdays = 0 day_in_seconds = pickuptime_seconds day = pickuptime_obj while day_in_seconds < firstdeliverytime_seconds: day = time.localtime(day_in_seconds) if ([day.tm_mon,day.tm_mday] in publicholiday_mon_day) or (day.tm_wday == 6): totalnonworkingdays += 1 day_in_seconds += secondsinaday timetakeninworkingdays_seconds = firstdeliverytime_seconds - ( totalnonworkingdays * secondsinaday ) if (timetakeninworkingdays_seconds - pickuptime_seconds) > SLA_seconds: return True return False #TEST #print(timechecker(1583137548, 1583412300, 5))