Jump to content

Como fazer cálculos com datas de forma simples


Thanael

Postagens Recomendadas

  • Pessoal da TecnoSpeed

Você em algum momento já precisou realizar cálculos com datas e também ficou perdido em como realizar isso sem quebrar a data? Antes de lhe mostrar como realizar isso, vou compartilhar com você um simples problema e quero que você pense em como soluciona-lo. 

"Preciso saber qual dia era 10 dias atrás"

Aparentemente parece algo simples, ou seja basta pegar o dia atual (29) e diminuir 10 dias ou seja 29 - 10 = 19 desta forma sabemos que 10 dias atrás era dia 19, mas e se hoje fosse dia 5 ? poderíamos usar essa mesma lógica ?  5 - 10 = -5 ou seja não iria funcionar, além disso precisaríamos saber também o número de dias do mês para obter um resultado assertivo.
Complicado né ? 😅 o que parecia tão simples agora parece tão complicado.
 

Mas calma, vou lhe mostrar como isso ainda é simples e fácil de realizar, ao lhe mostrar a maneira de realizar isso você ficará chocado com o quão simples é realizar isso em basicamente 1 linha de código.

Primeiro precisamos ter as bibliotecas necessárias para trabalhar com as datas, portanto certifique-se de ter as bibliotecas datetime e dateutil

Vamos agora resolver esse exercício que comentei anteriormente.

from datetime import date
from dateutil.relativedelta import relativedelta

# Obter a data atual
hoje = date.today()
print('hoje:',hoje)

#Agora basta realizar a subtração de 10 dias desta data
new_data = hoje - relativedelta(days = 10)
print("Data -10 dias:", new_data)

Olha o resultado.

image.png

Mas Thanael.... Nesse caso ai é o mesmo que só fazer 29-10... Mas olha agora quando faço o exemplo que comentei que se hoje fosse dia 5
image.png

Viu só, agora a biblioteca realiza tudo isso de verificar numero de dias no mês e tudo mais, ou seja ela que realiza toda a magia 😄

Nos exemplo fizemos subtração de dias de uma data, mas podemos realizar também adições, somente mudando o sinal de - ali para +Outro ponto, nos exemplo fizemos com dias, porém a biblioteca aceita outros termos como weeks, months, years sugiro você olhar na documentação para entender tudo que se pode fazer com este método de relativedelta portanto vou deixar abaixo um link para acessar a documentação. 👍

Documentação: https://dateutil.readthedocs.io/en/stable/relativedelta.html

  • Amei 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...