Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class DrivingTime:
- drive_minutes_allowed = 270
- day_time_limit = 270 * 2 + 60
- minimal_pause_required = 45
- messages = {
- "format required": "във формат \"часове:минути\"",
- "time driven": "Въведете колко часа шофирахте без прекъсване /format required/: ",
- "driving begins": f"Въведете часа, в който започнахте да шофирате /format required/:",
- "driving ends": f"Въведете часа, в който спряхте да шофирате /format required/:",
- "time exceeded": "Внимание, шофирането без почивки надвишава позоленият лимит!",
- "day limit exceeded": "Внимание, шофирането надвишава позоленият лимит за деня!",
- "first pause": "Въведете колко беше Вашата първа почивка /format required/: ",
- "second pause": "Въведете колко беше Вашата втората почивка /format required/: ",
- "time regained": "Вие имате право на нови 4:30 часа каране!",
- "long pause required": "Вие имате нужда минимум 45 минути почивка, като първата Ви може да е 15 минутна, "
- "а втората задтължително поне 30,! ",
- "short pause required": "Вие имате нужда от поне още една почивка от минимум 30 минути, за да получите нови 4:30 часа за "
- "каране!",
- "drive time remaining": "Имате право да карате още /drive_time_to_make_pause/ минути, до достигане на Вашият "
- "лимит за "
- "каране без почивка!"
- }
- def __init__(self, time_mode="total"):
- self.time_mode = time_mode
- self.message_values_update("/format required/", self.messages["format required"])
- self.drive_time = self.get_time()
- # self.first_pause = self.get_pause("first pause")
- # self.second_pause = self.get_pause("second pause")
- self.pause_checker()
- def __get_minutes(self, message="Message not defined"):
- message = input(message).split(":")
- if len(message) == 1:
- return int(message[0])
- return int(message[0]) * 60 + int(message[1])
- def get_time(self):
- if self.time_mode == "total":
- drive_time = self.__get_minutes(self.messages["time driven"])
- else:
- driving_begins = self.__get_minutes(self.messages["driving begins"])
- driving_ends = self.__get_minutes(self.messages["driving ends"])
- drive_time = driving_ends - driving_begins
- return drive_time
- def pause_checker(self, paused="first pause", warn="long pause required"):
- if self.drive_time > self.day_time_limit:
- print(self.messages["day limit exceeded"])
- return
- if self.drive_time >= self.drive_minutes_allowed:
- if self.drive_time > self.drive_minutes_allowed:
- print(self.messages["time exceeded"])
- print(self.messages[warn])
- self.first_pause = self.get_pause(paused)
- self.drive_time += self.get_time()
- self.drive_minutes_allowed *= 2
- self.pause_checker("second pause", "short pause required")
- else:
- self.time_remaining = self.drive_minutes_allowed - self.drive_time
- print(self.value_update(self.messages["drive time remaining"], "/drive_time_to_make_pause/", self.time_remaining ))
- self.drive_time += self.get_time()
- self.pause_checker(paused, warn)
- pass
- def message_values_update(self, placeholder, message):
- for mess in self.messages:
- self.messages[mess] = self.value_update(self.messages[mess], placeholder, message)
- def value_update(self, text, placeholder, message):
- return text.replace(str(placeholder), str(message))
- def get_pause(self, number="first"):
- pause = self.__get_minutes(self.messages["first pause"])
- if "first" in number:
- if 0 < pause < 45:
- pause = 15
- return pause
- DrivingTime("duration")
Add Comment
Please, Sign In to add comment