def __init__(self): self.locations = self.createLocations() self.location_map = self.createMap(self.locations) self.hub_packages = self.createPackages(self.locations) self.avb_packs = self.hub_packages.keys()[:] self.trucks = [] self.late_list = self.createLateList(self.avb_packs) self.early_dev_list = self.getEarlyDevList(self.avb_packs) self.wrongList = self.createWrongList(self.avb_packs) self.second_list = self.createSecondList(self.avb_packs) self.first_list = self.createFirstList(self.late_list, self.early_dev_list, self.avb_packs) self.third_list = self.createThirdList(self.avb_packs, self.wrongList) self.trucks.append( Truck(2, Time(8, 0), self.getPackagesByID(self.second_list, 2))) self.trucks.append( Truck(1, Time(9, 5), self.getPackagesByID(self.first_list, 1))) self.trucks.append( Truck(3, Time(10, 20), self.getPackagesByID(self.third_list, 3)))
def get_input_time(): while True: user_input = input("Please input the time in (HH:MM) format, between 8:00 and 17:00: ") hourMin = user_input.strip().split(":") try: if len(hourMin) < 2: raise ValueError hour = int(hourMin[0]) mins = int(hourMin[1]) return Time(hour, mins) except ValueError: print("Invalid format, Please try again!")
def calculateRouteTime(self): raw_time = self.total_distance / 18 hours = int(raw_time) mins = math.ceil((raw_time - hours) * 60) duration = Time(hours, mins) return self.start_time + duration
def calculateDeliveryTime(self, start_time, distance): raw_time = distance / self.SPEED hours = int(raw_time) mins = (raw_time - hours) * 60 duration = Time(hours, mins) return start_time + duration