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!