Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Cronometro - tempo.py

tempo.py

Caricato da: Poggi Marco
Scarica il programma completo

  1. from datetime import *
  2.  
  3. class Tempo:
  4.  
  5.      def __init__(self):
  6.           """Costruttore"""
  7.           self.inizio=0
  8.           self.cronometrato=0
  9.           self.attivo=False
  10.  
  11.      def avvia(self):
  12.           """Avvia il cronometro"""
  13.           self.inizio=datetime.now()
  14.           self.cronometrato=0.0
  15.           self.attivo=True
  16.  
  17.      def riavvia(self):
  18.           """Riavvia il cronometraggio"""
  19.           if not self.attivo:
  20.                try:
  21.                     self.inizio=datetime.now()-self.cronometrato
  22.                except TypeError:
  23.                     #Termina la funzione; si è tentato di riavviare il
  24.                     #cronometraggio senza averlo inizializzato
  25.                     return
  26.                except:
  27.                     #Errore non gestito!
  28.                     return
  29.                self.attivo=True
  30.                self.cronometrato=0.0
  31.  
  32.      
  33.      def ferma(self):
  34.           """Ferma il cronometro"""
  35.           if self.attivo:
  36.                self.attivo=False
  37.                self.cronometrato=datetime.now()-self.inizio  
  38.                self.inizio=0.0
  39.  
  40.      def __str__(self):
  41.           """Converte in stringa"""
  42.           if self.attivo:
  43.                attuale=datetime.now()-self.inizio
  44.                ore=int(attuale.seconds/3600) % 24
  45.                minuti=int(attuale.seconds/60) % 60
  46.                secondi=attuale.seconds % 60
  47.                return '%2d:%2d:%2d,%s' %(ore, minuti, secondi, str(int(attuale.microseconds/1000.0)).rjust(3, '0'))
  48.           else:
  49.                return " 0: 0: 0,000"