Перечислите DateRange - PullRequest
       6

Перечислите DateRange

3 голосов
/ 26 января 2010

У меня есть 2 даты, и я пытаюсь построить метки оси X графика.

Как таковой, мне нужен способ взять 2 datetime объектов, то есть 2009-10-12 00: 00: 00 и 2009-10-20 00: 00: 00 и сгенерировать список следующим образом:

["2009-10-12", "2009-10-13", "2009-10-14", ..., "2009-10-19", "2009-10-20"]

Какие библиотеки мне следует использовать для помощи?Я чувствую, что модуль datetime и функциональность timedelta очень помогут.

Я могу включить код, если это имеет смысл, но у меня есть чувствоесть кое-что встроенное в библиотеки Python, которое позволяет сделать это очень просто.Кажется, мне просто не хватает этого.

Ответы [ 2 ]

2 голосов
/ 26 января 2010
import datetime

first=datetime.date(2009,10,12)
last=datetime.date(2009,10,20)
adate=first
dates=[]
while adate<=last:
    dates.append(adate)
    adate+=datetime.timedelta(1)
print(dates)

Или, для любителей понимания списка:

len=(last-first).days
dates=[first+datetime.timedelta(n) for n in range(len+1)]
0 голосов
/ 26 января 2010
from datetime import date, timedelta

a, b = date(1010, 10, 12), date(1010, 10, 20)
times = [a + timedelta(x) for x in xrange((b-a).days)]

# If you want to format them:
times = [x.strftime('%Y-%m-%d') for x in times]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...