Salve galerinhaaaa, Tudo certo com vocês?
Na ultima semana, eu peguei um trabalho onde eu precisava fazer o calculo de dias e horas com Python. Com algumas pesquisas no Google cheguei a vários resultados, uns realmente bons e outros meio “WTF .-.”.
Logo pensei comigo mesmo, e falei, “vou pesquisar como Python trabalha com horas e desenvolver um algorítimo próprio para isso”, com algumas pesquisas na documentação do python descobri que é mais fácil do que imaginava ser trabalhar com data e hora.
Introdução
No python temos o módulo datetime que provê vários objetos de manipulação de data e hora, como por exemplo date, time, datetime, timedelta, tzinfo e timezone, Neste post iremos falar sobre datetime e timedelta.
Datetime
Combinando todos os atributos de data e hora, nos retorna uma tupla como essa abaixo:
Tupla de Datetime: 2017-12-30 17:04:18.329567
O formato padrão dela é:
- Ano: 4 Dígitos
- Mês: 2 Dígitos
- Dia: 2 Dígitos
- Hora: 2 Dígitos
- Minuto: 2 Dígitos
- Segundos: 2 Dígitos + 6 Casas (para diferenciar os microssegundos)
Timedelta
Representa a duração ou a diferença entre duas datas ou horas. Pode ser representada da seguinte forma:
timedelta (days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
Como por exemplo, retornar uma diferença de 2 horas:
Time delta: 2:00:00
Colocando a mão na massa
Depois de apresentado os objetos que iremos trabalhar, vamos começar a fazer uns testes. Vou comentar linha a linha o que esta acontecendo, e no final, posto o resultado de tudo.
Primeiro criamos nosso arquivo date-hour.py
- Linha 1: Faço a importação de datetime e timedelta do módulo datetime
- Linha 3: Pego o datetime atual, guardando na variavel now
- Linha 5: Printo a tupla gerada na tela
- Linha 7: Gerei um timedelta de 2 horas e guardei na variavel td
- Linha 10: Printei a hora atual
- Linha 11: Printei a soma da hora atual com o timedelta
- Linha 12: Printei a subtração da hora atual com o timedelta
from datetime import datetime, timedelta
now = datetime.now()
print("Tupla de Datetime: " + str(now))
td = timedelta(hours=2)
print("Time delta: " + str(td) + "\n")
print("Hora Atual " + str(now))
print("+2 horas " + str(now + td))
print("-2 horas " + str(now - td))
Saida dos comandos acima:
Tupla de Datetime: 2017-12-30 17:39:28.446383 Time delta: 2:00:00 Hora Atual 2017-12-30 17:39:28.446383 +2 horas 2017-12-30 19:39:28.446383 -2 horas 2017-12-30 15:39:28.446383
Até a próxima pessoal <3