Preciso obter quais os meses que compreendem este período, da seguinte
forma:
01/01/2010 - 31/12/2010
01/02/2010 - 28/02/2010
...
Qual seria a forma mais "pythonica" de se fazer isto?
Obrigado.
Antonio.
[As partes desta mensagem que não continham texto foram removidas]
------------------------------------
Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/python-brasil/
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@yahoogrupos.com.br
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html
Você deseja saber, o nome dos meses? ou as quantidades de dias/semanas/meses
entre duas datas?
Em 14 de junho de 2011 08:47, Antonio Prado
<sup...@antonioprado.eti.br>escreveu:
>
>
> Tenho o seguinte período:
> 01/12/2010 - 31/12/2010
>
> Preciso obter quais os meses que compreendem este período, da seguinte
> forma:
> 01/01/2010 - 31/12/2010
> 01/02/2010 - 28/02/2010
> ...
>
> Qual seria a forma mais "pythonica" de se fazer isto?
>
> Obrigado.
>
> Antonio.
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
--
Maxwell Morais
(+55 11) 3774-1137
www.realizemodulados.com.br
Email - max.mor...@gmail.com
Agenda - *
http://www.google.com/calendar/embed?src=max.morais.dmm%40gmail.com&ctz=America/Sao_Paulo
*
Não entendi muito bem sua pergunta, mas dê uma olhada no módulo
timedelta[0] e veja se resolve o seu problema.
[0] http://docs.python.org/library/datetime.html#datetime.timedelta
--
thiagoc
"O povo não deveria temer o governo. O governo é quem deveria temer o povo."
V de Vingança
Você precisa ter uma dúvida mais específica, assim não é nenhum crime. Vou considerar que você quer saber o ultimo dia do mês, uma forma mais pratica ao meu ver seria:
from datetime import date, timedelta
date(2011, 2, 1) - timedelta(days=1)
Ou seja, pegar a data do primeiro dia do mês seguinte e diminuir por 1 dia, vai te retornar a data do último dia do mês anterior, para resolver o restante de seu problema com isso é só uma questão de lógica de programação.
Só lembrando que o histórico da lista fica arquivado e é indexado por buscadores, não há nenhum mal em ter dúvidas, mas pedir para alguém fazer o seu trabalho pode ser perigoso.
________________________________
De: Antonio Prado <sup...@antonioprado.eti.br>
Para: python...@yahoogrupos.com.br
Enviadas: Terça-feira, 14 de Junho de 2011 8:47
Assunto: [python-brasil] Intervalo de Datas.
Olá!
Use a classe datetime.date, função strptime para transformar
string em data e então year e month para calcular, exemplo:
import datetime
intervalo = "01/01/2010 - 31/12/2011"
inicio, fim = [datetime.datetime.strptime(data.strip(), '%d/%m/%Y') for
data in intervalo.split('-')]
meses = (fim.year - inicio.year) * 12 + fim.month - inicio.month + 1
print meses
Ainda por usar somente split():
intervalo = "01/01/2010 - 31/12/2010"
inicio, fim = [[int(x) for x in data.strip().split('/')] for data in
intervalo.split('-')]
meses = (fim[2] - inicio[2]) * 12 + fim[1] - inicio[1] + 1
print meses
Ou ainda, se quer calcular o número de dias e dividir por 30:
import datetime
intervalo = "01/01/2010 - 31/01/2011"
inicio, fim = [datetime.datetime.strptime(data.strip(), '%d/%m/%Y') for
data in intervalo.split('-')]
meses = (fim - inicio).days / 30
print meses
Observe que no caso acima retorna apenas a parte inteira da
divisão arredondado para baixo. Para ter um resultando com número real,
divida por `30.0´ e faça seu arredondamento, se for o caso.
[]'s
Junior Polegato