Estou usando o módulo datetime do Python , ou seja:
>>> import datetime
>>> today = datetime.datetime.now()
>>> print today
2009-03-06 13:24:58.857946
e gostaria de calcular o dia do ano sensível aos anos bissextos. por exemplo, hoje (6 de março de 2009) é o 65º dia de 2009. Aqui está a calculadora DateTime baseada na Web .
Enfim, vejo duas opções:
A. Crie um número_de_dias_em_month array = [31, 28, ...], decida se é um ano bissexto, resuma manualmente os dias.
B. Use datetime.timedelta
para fazer um palpite e, em seguida, pesquisa binária para o dia correto do ano:
>>> import datetime
>>> YEAR = 2009
>>> DAY_OF_YEAR = 62
>>> d = datetime.date(YEAR, 1, 1) + datetime.timedelta(DAY_OF_YEAR - 1)
Ambos parecem muito desajeitados e eu sinto que há uma maneira mais "pitônica" de calcular o dia do ano. Alguma idéia / sugestão?
date.today()
ao invés dedatetime.now()
também funciona e enfatiza a natureza da operação um pouco mais.