Я бы хотел итерировать по дням (или лучше построить массив) даты B C, как я делаю с типичными датами:
from calendar import monthrange
import datetime
for y in range(2010, 2020):
for m in range(1,13):
for d in range(1, monthrange(y, m)[1]+1):
print(datetime.date(year=y,month=m,day=d))
Я знаю, что это невозможно в чистом виде python библиотека даты и времени (из-за определения даты и времени), таким образом, я прошел через этот вопрос , заданный ранее, и понял, что может быть два основных варианта решения моей задачи:
- проанализированный объект данных ( из datautil.date import parse) (выглядит устаревшим)
- Объект Astropy (из времени импорта astropy.time)
Работа с объектом данных (имя пакета python3 равно python -dateutil (вместо datautil) и импорт немного отличается) меня смущает еще больше, поскольку мне кажется, что дата B C больше не сохраняется / или это совершенно другая библиотека:
from dateutil.parser import parse
parse(-200-01-01) # is an AD date object: datetime.datetime(200, 1, 1, 0, 0)
parse(u'200BC') # reports: ValueError: ('Unknown string format:', '200BC')
Говоря об астропии - единственное упоминание об отрицательных датах содержится в разделе FITS , но я абсолютно не знаю, как использовать объект. Документы очень редки, без примеров, и мне не удалось заставить его работать.
Мои ограниченные знания не позволяют мне найти что-либо в документации, если мой подход к созданию B C объект даты в python 3+ возможен, и если я каким-то образом могу перебирать здесь дни.
Единственный «обходной путь» (замена месячного диапазона), о котором я могу подумать, - это функция last_day_month, представленная JK в другом месте . Но сейчас, можете ли вы предложить какой-либо способ, как я могу построить диапазон дней и перебрать их?