16.1 - Time

Para ter mais um exemplo de tipo definido pelo programador, criaremos uma classe chamada Time (hora), que registra um horário no dia. A definição da classe é assim:

class Time:
    """Represents the time of day.
    attributes: hour, minute, second
    """

Podemos criar um objeto Time e ter atributos para horas, minutos e segundos:

time = Time()
time.hour = 11
time.minute = 59
time.second = 30

O diagrama de estado do objeto Time está na Figura 16.1.

Figura 16.1 – Diagrama de um objeto Time.
Figura 16.1 – Diagrama de um objeto Time.

Como exercício, escreva uma função chamada print_time, que receba um objeto Time e o exiba na forma hour:minute:second. Dica: a sequência de formatação '%.2d' exibe um número inteiro com, pelo menos, dois dígitos, incluindo um zero à esquerda, se for necessário.

Escreva uma função booleana chamada is_after, que receba dois objetos Time, t1 e t2, e devolva True se t1 for cronologicamente depois de t2 e False se não for. Desafio: não use uma instrução if.