Frage

i want date range between two dates. the result value will be like it should support for string operations or it should be in string.

i have tried the following code but i am not at all doing anything with the date object.

import datetime

def generate_dates(start_date, end_date):
    td = datetime.timedelta(hours=24)
    current_date = start_date
    while current_date <= end_date:
        print current_date
        current_date += td

start_date = datetime.date(2010, 1, 2)
end_date = datetime.date(2010, 1, 5)
generate_dates(start_date, end_date)

when i am trying to print break the current date current_date[0:4], it is throwing error like this.

Traceback (most recent call last):
File "C:/Users/Gopi/Desktop/d.py", line 12, in <module>
generate_dates(start_date, end_date)
File "C:/Users/Gopi/Desktop/d.py", line 7, in generate_dates
print current_date[0]
TypeError: 'datetime.date' object is not subscriptable

please,help me

War es hilfreich?

Lösung

Use the yield keyword:

import datetime

def generate_dates(start_date, end_date):
    one_day = datetime.timedelta(days=1)
    current_date = start_date
    while current_date <= end_date:
        yield current_date
        current_date += one_day

start_date = datetime.date(2010, 1, 2)
end_date = datetime.date(2010, 1, 5)

for date in generate_dates(start_date, end_date):
    print(date)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top