Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Multiple Timers
#4
The Gui would be responsible for calling the method get_duration every update interval.
import datetime
import time


class Timer:
    def __init__(self):
        self.timedelta = datetime.timedelta()
        self.running = False

    def start(self):
        self.start_time = datetime.datetime.now()
        self.running = True

    def stop(self):
        if not self.running:
            return
        self.timedelta += datetime.datetime.now() - self.start_time
        self.running = False

    def reset(self):
        self.timedelta = datetime.timedelta()
        self.running = False

    def get_duration(self):
        duration = self.timedelta
        if self.running:
            duration += datetime.datetime.now() - self.start_time
        return duration


timer = Timer()
timer2 = Timer()
timer.start()
timer2.start()
time.sleep(1)
print(f'Timer1: {timer.get_duration()}')
print(f'Timer2: {timer2.get_duration()}')
time.sleep(1)
print(f'Timer1: {timer.get_duration()}')
print(f'Timer2: {timer2.get_duration()}')
timer2.stop()
print('Timer2 stopped')
time.sleep(1)
print(f'Timer1: {timer.get_duration()}')
print(f'Timer2: {timer2.get_duration()}')
timer2.start()
print('Timer2 started')
time.sleep(1)
print(f'Timer1: {timer.get_duration()}')
print(f'Timer2: {timer2.get_duration()}')
time.sleep(1)
print(f'Timer1: {timer.get_duration()}')
print(f'Timer2: {timer2.get_duration()}')
timer.reset()
timer.start()
print('timer1 reset & restarted')
time.sleep(1)
print(f'Timer1: {timer.get_duration()}')
print(f'Timer2: {timer2.get_duration()}')
time.sleep(1)
print(f'Timer1: {timer.get_duration()}')
print(f'Timer2: {timer2.get_duration()}')
Output:
Timer1: 0:00:01.000916 Timer2: 0:00:01.000916 Timer1: 0:00:02.001026 Timer2: 0:00:02.001026 Timer2 stopped Timer1: 0:00:03.001449 Timer2: 0:00:02.001026 Timer2 started Timer1: 0:00:04.001503 Timer2: 0:00:03.001080 Timer1: 0:00:05.001634 Timer2: 0:00:04.001211 timer1 reset & restarted Timer1: 0:00:01.000573 Timer2: 0:00:05.001784 Timer1: 0:00:02.001267 Timer2: 0:00:06.002478
Reply


Messages In This Thread
Multiple Timers - by SenselessScott - Jul-06-2020, 02:17 PM
RE: Multiple Timers - by rexrf - Jul-06-2020, 04:43 PM
RE: Multiple Timers - by deanhystad - Jul-06-2020, 06:00 PM
RE: Multiple Timers - by Yoriz - Jul-06-2020, 10:14 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Quick Help - Timers - Need Small Solution for Working Code EwH006 5 4,057 Nov-17-2020, 04:09 AM
Last Post: EwH006
  Timers In python ShruthiLS 3 2,899 Jun-11-2018, 05:31 AM
Last Post: ShruthiLS

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020