123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- 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.total_start_time = -1
- self.task_start_time = -1
- self.pause_time = 0
- self.stop_time = 0
- self.is_paused = False
- self.is_stopped = True
- def get_passed_task_time(self):
- if self.task_was_started():
- current_time = get_current_time()
- if self.is_paused:
- return current_time - (self.task_start_time + (current_time - self.pause_time))
- else:
- return current_time - self.task_start_time
- else:
- return 0
- def get_passed_total_time(self):
- if self.timer_was_started():
- current_time = get_current_time()
- if self.is_paused:
- return current_time - (self.total_start_time + (current_time - self.pause_time))
- elif self.is_stopped:
- return current_time - (self.total_start_time + (current_time - self.stop_time))
- else:
- return current_time - self.total_start_time
- else:
- return 0
- def get_task_value_string(self):
- current_time = self.get_passed_task_time()
- return '{:02d}:{:02d}:{:02d}'.format((current_time // 60) // 60,
- (current_time // 60) % 60,
- current_time % 60)
- def get_total_value_string(self):
- current_time = self.get_passed_total_time()
- return '{:02d}:{:02d}:{:02d}'.format((current_time // 60) // 60,
- (current_time // 60) % 60,
- current_time % 60)
- def start(self):
- current_time = get_current_time()
- if self.is_paused:
- self.task_start_time = self.task_start_time + (current_time - self.pause_time)
- self.total_start_time = self.total_start_time + (current_time - self.pause_time)
- self.pause_time = 0
- self.is_paused = False
- else:
- if not self.task_was_started():
- self.task_start_time = current_time
- if not self.timer_was_started():
- self.total_start_time = current_time
- elif self.is_stopped:
- self.total_start_time = self.total_start_time + (current_time - self.stop_time)
- self.stop_time = 0
- self.is_stopped = False
- def stop(self):
- self.task_start_time = -1
- if self.is_paused:
- self.total_start_time = self.total_start_time + (get_current_time() - self.pause_time)
- self.pause_time = 0
- self.is_paused = False
- self.stop_time = get_current_time()
- self.is_stopped = True
- def pause(self):
- if not self.is_paused:
- self.is_paused = True
- self.pause_time = get_current_time()
- def task_was_started(self):
- return self.task_start_time > 0
- def timer_was_started(self):
- return self.total_start_time > 0
|