from datetime import *
class Tempo:
def __init__(self):
"""Costruttore"""
self.inizio=0
self.cronometrato=0
self.attivo=False
def avvia(self):
"""Avvia il cronometro"""
self.inizio=datetime.now()
self.cronometrato=0.0
self.attivo=True
def riavvia(self):
"""Riavvia il cronometraggio"""
if not self.attivo:
try:
self.inizio=datetime.now()-self.cronometrato
except TypeError:
#Termina la funzione; si è tentato di riavviare il
#cronometraggio senza averlo inizializzato
return
except:
#Errore non gestito!
return
self.attivo=True
self.cronometrato=0.0
def ferma(self):
"""Ferma il cronometro"""
if self.attivo:
self.attivo=False
self.cronometrato=datetime.now()-self.inizio
self.inizio=0.0
def __str__(self):
"""Converte in stringa"""
if self.attivo:
attuale=datetime.now()-self.inizio
ore=int(attuale.seconds/3600) % 24
minuti=int(attuale.seconds/60) % 60
secondi=attuale.seconds % 60
return '%2d:%2d:%2d,%s' %(ore, minuti, secondi, str(int(attuale.microseconds/1000.0)).rjust(3, '0'))
else:
return " 0: 0: 0,000"