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