Я использую модуль Python datetime , то есть:
>>> import datetime
>>> today = datetime.datetime.now()
>>> print today
2009-03-06 13:24:58.857946
и я хотел бы вычислить день года, чувствительный к високосным годам. например, сегодня (6 марта 2009 г.) 65-й день 2009 г. Вот веб-калькулятор DateTime .
Во всяком случае, я вижу два варианта:
A. Создайте массив number_of_days_in_month = [31, 28, ...], решите, является ли это високосным годом, вручную просуммируйте дни.
B. Используйте, datetime.timedelta
чтобы сделать предположение, а затем выполнить двоичный поиск правильного дня года:
>>> import datetime
>>> YEAR = 2009
>>> DAY_OF_YEAR = 62
>>> d = datetime.date(YEAR, 1, 1) + datetime.timedelta(DAY_OF_YEAR - 1)
Они оба кажутся довольно неуклюжими, и у меня есть интуиция, что есть более «питонический» способ вычисления дня года. Есть идеи / предложения?
date.today()
а неdatetime.now()
работает и еще больше подчеркивает характер операции.