O problema era o seguinte, eu tinha que retroceder 12 semanas apartir da data atual, se você nunca manipulou datas em Python já lhe adianto que é muito simples assim como tudo que existe em Python.
Vamos começar a por a mão na massa? Primeira coisa que temos que fazer é recuperar a data atual do sistema:
1 2 3 4 5 6 7 8 9 10 | #!/usr/bin/python from datetime import datetime today = datetime.now() print 'Data atual do sistema: %s' % today # imprimindo por extenso print 'Data atual do sistema: %s' % today.strftime('%A, %d of %B of %Y') |
Agora que temos a data atual, vamos recuperar o primeiro e último dia da semana atual. Para fazer cálculos de forma simples com Python temos o módulo timedelta.
1 2 3 4 5 6 7 8 9 10 11 12 | #!/usr/bin/python # coding: utf-8 from datetime import datetime from datetime import timedelta today = datetime.now() first_day = today - timedelta(days=today.isoweekday()) last_day = first_day + timedelta(days=6) print u'primeiro dia %s' % first_day print u'último dia %s' % last_day |
Show de bola, muito fácil até o momento. Agora precisamos regredir doze semanas da data atual, isso pode ser feito da mesma forma que foi utilizada com os dias, mas agora ao invés de dias vamos subtrair semanas. Lembrando que vamos considerar a semana atual como sendo uma semana dentro do intervalo.
1 2 3 4 5 6 7 8 9 10 11 12 | #!/usr/bin/python # coding: utf-8 from datetime import datetime from datetime import timedelta today = datetime.now() first_date = today - timedelta(days=today.isoweekday()) twelve_week = first_date - timedelta(weeks=11) print 'Doze semanas atrás: %s' % twelve_week print 'Por extenso: %s' % twelve_week.strftime('%A, %d of %B of %Y') |
Com isso eu resolvi o meu problema de voltar semanas utilizando apenas as baterias inclusas do Python.
Até a próxima galerinha, se tiverem dúvidas deixem comentários que responderei!
Meu amigo, parabéns. Eu estou iniciando em python e consegui compreender bem toda a sua explicação.
ResponderExcluirTenho duvida no seguinte. Depois que vc carregou a "timedelta" como eu faço para saber quais opções que tenho dentro da time delta.
O que eu queria era enxergar as possibilidades que tenho ao usar o "timedata".
Abraços
Olá vc pode usar o dir ou help. Abaixo um exemplo de como utilizar:
ResponderExcluir$ python
>>> from datetime import timedelta
>>> dir(timedelta)
>>> help(timedelta)
Obrigado por acompanhar o meu trabalho, se tiver duvidas em seus estudos só falar. Se tiver sugestões de publicações fale também isso ajuda o trabalho a não parar.
Abraços.
Como faço para ter o dia da semana em portugues
ResponderExcluirimport calendar
Excluirimport locale
locale.setlocale(locale.LC_ALL, 'pt_BR')
print(list(calendar.day_name))
Estou usando Python 3.6, e também para que esse código funcione a máquina precisa do language-pack pt_BR.
Se estiver no Linux pode verificar com o comando: locale -a.
Espero ter ajudado, abraço!