Medidas de Tempo em Código
Sobre a Matemática
A unidade legal para a medida de tempo é o segundo, que é o intervalo de tempo igual à fração 1/86400 do dia solar médio, definido de acordo com as convenções da Astronomia.
| Nome | Símbolos | Valores |
| dia | 86 400s | d |
| hora | 3 600 s | h |
| minuto | 60 s | m ou min |
| segundo | 1 s | s ou seg |
Sobre o Código
Na linguagem de programação Python,
from – é a palavra-chave usada para importar partes específicas de um módulo ou biblioteca.
datetime – é o módulo da biblioteca padrão que fornece classes para manipulação de datas e horas.
import – é a palavra-chave usada para trazer módulos ou funções externas para o código.
timedelta() – é a classe do módulo datetime que representa a diferença entre duas datas/horas (um intervalo de tempo).
seconds= – é o argumento nomeado usado em funções como timedelta para indicar quantidade de segundos.
{} – é a sintaxe para criar um dicionário vazio ou delimitar pares chave-valor.
def – é a palavra-chave usada para definir uma função.
docstring – é a string de documentação dentro de uma função, classe ou módulo, usada para explicar seu propósito.
if: – é a estrutura condicional que executa um bloco de código se a condição for verdadeira.
not in – é o operador lógico que verifica se um elemento não está presente em uma sequência (lista, string, dicionário, etc.).
or – é o operador lógico que retorna verdadeiro se pelo menos uma das condições for verdadeira.
print() – é a função embutida que exibe informações na saída padrão (geralmente o console).
# – é usado para criar comentários ao código, que são notas para se entender melhor o que o código faz.
Vamos ao código..
from datetime import timedelta
# Dicionário com equivalências em segundos
UNIDADES_TEMPO = {
"segundo": 1,
"minuto": 60,
"hora": 3600,
"dia": 86400
}
def converter_tempo(valor, unidade_origem, unidade_destino):
"""
Converte um valor de tempo entre diferentes unidades.
:param valor: número a ser convertido
:param unidade_origem: unidade de entrada (segundo, minuto, hora, dia)
:param unidade_destino: unidade de saída (segundo, minuto, hora, dia)
:return: valor convertido
"""
if unidade_origem not in UNIDADES_TEMPO or unidade_destino not in UNIDADES_TEMPO:
raise ValueError("Unidade inválida. Use: segundo, minuto, hora ou dia.")
# Converte para segundos
valor_em_segundos = valor * UNIDADES_TEMPO[unidade_origem]
# Converte para unidade destino
return valor_em_segundos / UNIDADES_TEMPO[unidade_destino]| Código Python (.py) | O que faz |
| from datetime import timedelta | Importa a classe timedelta da biblioteca datetime, usada para representar intervalos de tempo. |
| UNIDADES_TEMPO = { | Cria um dicionário chamado UNIDADES_TEMPO que guarda as equivalências das unidades em segundos. |
| “segundo”: 1, | Define que 1 segundo equivale a 1 segundo. |
| “minuto”: 60, | Define que 1 minuto equivale a 60 segundos. |
| “hora”: 3600, | Define que 1 hora equivale a 3600 segundos. |
| “dia”: 86400 | Define que 1 dia equivale a 86400 segundos. |
| } | Fecha o dicionário. |
| def converter_tempo(valor, unidade_origem, unidade_destino): | Define uma função chamada converter_tempo que recebe três parâmetros: o valor numérico, a unidade de origem e a unidade de destino. |
| “”” “”” | docstring (comentário explicativo da função). |
| if unidade_origem not in UNIDADES_TEMPO or unidade_destino not in UNIDADES_TEMPO: | Verifica se as unidades fornecidas estão no dicionário. |
| raise ValueError(“Unidade inválida. Use: segundo, minuto, hora ou dia.”) | Se não estiverem, lança um erro informando que a unidade é inválida. |
| valor_em_segundos = valor * UNIDADES_TEMPO[unidade_origem] | Converte o valor da unidade de origem para segundos. |
| return valor_em_segundos / UNIDADES_TEMPO[unidade_destino] | Converte de segundos para a unidade de destino e retorna o resultado. |
# Exemplos de uso
print("2 horas em minutos:", converter_tempo(2, "hora", "minuto"))
print("3 dias em horas:", converter_tempo(3, "dia", "hora"))
print("120 segundos em minutos:", converter_tempo(120, "segundo", "minuto"))
# Usando timedelta para representar intervalos de tempo
intervalo = timedelta(seconds=3661)
print("Intervalo:", intervalo)
print("Em horas:", intervalo.total_seconds() / 3600)| Código Python (.py) | O que faz |
| print(“2 horas em minutos:”, converter_tempo(2, “hora”, “minuto”)) | Exemplo: converte 2 horas em minutos e imprime o resultado. |
| print(“3 dias em horas:”, converter_tempo(3, “dia”, “hora”)) | Exemplo: converte 3 dias em horas e imprime o resultado. |
| print(“120 segundos em minutos:”, converter_tempo(120, “segundo”, “minuto”)) | Exemplo: converte 120 segundos em minutos e imprime o resultado. |
| intervalo = timedelta(seconds=3661) | intervalo = timedelta(seconds=3661) |
| intervalo = timedelta(seconds=3661) | Imprime o intervalo em formato legível (1:01:01). |
| print(“Em horas:”, intervalo.total_seconds() / 3600) | Converte o intervalo total em horas e imprime o resultado. |
Saída do código (valor de retorno)…
2 horas em minutos: 120.0
3 dias em horas: 72.0
120 segundos em minutos: 2.0
Intervalo: 1:01:01
Em horas: 1.0169444444444444
Fonte:
– Editora Didática Paulista. Ensino Didático 2000: Ensino Fundamental e Ensino Médio. Sorocaba: Editora Didática Paulista, [s.d.].
– Códigos e comentários gerados por Microsoft Copilot com revisão nossa.
– https://docs.python.org/pt-br/3/ [Documentação Oficial do Python]