from time_recoder import save_recorded_time_in_table def get_current_time(): return save_recorded_time_in_table.get_current_time_as_timestamp() class Timer: def __init__(self): self.start_time = -1 self.pause_time = 0 self.is_paused = False def get_passed_time(self): if self.was_started(): current_time = get_current_time() if self.is_paused: return current_time - (self.start_time + (current_time - self.pause_time)) else: return current_time - self.start_time else: return 0 def get_value_string(self): current_time = self.get_passed_time() return '{:02d}:{:02d}:{:02d}'.format((current_time // 60) // 60, (current_time // 60) % 60, current_time % 60) def start(self): if self.is_paused: self.start_time = self.start_time + (get_current_time() - self.pause_time) self.pause_time = 0 self.is_paused = False else: self.start_time = get_current_time() def stop(self): self.start_time = -1 self.pause_time = 0 self.is_paused = False def pause(self): if not self.is_paused: self.is_paused = True self.pause_time = get_current_time() def was_started(self): return self.start_time > 0