Я використовую Python DATETIME модуль, а саме:
>>> import datetime
>>> today = datetime.datetime.now()
>>> print today
2009-03-06 13:24:58.857946
і я хотів би обчислити день року, який чутливий до високосних років. наприклад, сьогодні (6 березня 2009 р.) - 65-й день 2009 року. Ось веб-калькулятор DateTime .
У будь-якому разі я бачу два варіанти:
A. Створіть число_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()також, працює і ще більше підкреслює характер операції.