Я использую модуль datetime Python, т.е.
>>> 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)
Они оба чувствуют себя довольно неуклюже У меня есть ощущение, что существует более "питоновский" способ вычисления дня года. Есть идеи/предложения?