pythondatetime

How to get all days in current month?


I want to get all datetime object of each day in the current month but I haven't done yet. The result expected I wanted:

[datetime.date(2014, 1, 1), datetime.date(2014, 1, 2), 
 datetime.date(2014, 1, 3), ..., datetime.date(2014, 1, 29),
 datetime.date(2014, 1, 30), datetime.date(2014, 1, 31)]

How can I solve this issue?

Please show me your ideas or suggestions. Thanks!


Solution

  • Here's a solution with datetime and calendar:

    >>> import datetime, calendar
    >>> year = 2014
    >>> month = 1
    >>> num_days = calendar.monthrange(year, month)[1]
    >>> days = [datetime.date(year, month, day) for day in range(1, num_days+1)]
    >>> days
    [datetime.date(2014, 1, 1), datetime.date(2014, 1, 2), datetime.date(2014, 1, 3), datetime.date(2014, 1, 4), datetime.date(2014, 1, 5), datetime.date(2014, 1, 6), datetime.date(2014, 1, 7), datetime.date(2014, 1, 8), datetime.date(2014, 1, 9), datetime.date(2014, 1, 10), datetime.date(2014, 1, 11), datetime.date(2014, 1, 12), datetime.date(2014, 1, 13), datetime.date(2014, 1, 14), datetime.date(2014, 1, 15), datetime.date(2014, 1, 16), datetime.date(2014, 1, 17), datetime.date(2014, 1, 18), datetime.date(2014, 1, 19), datetime.date(2014, 1, 20), datetime.date(2014, 1, 21), datetime.date(2014, 1, 22), datetime.date(2014, 1, 23), datetime.date(2014, 1, 24), datetime.date(2014, 1, 25), datetime.date(2014, 1, 26), datetime.date(2014, 1, 27), datetime.date(2014, 1, 28), datetime.date(2014, 1, 29), datetime.date(2014, 1, 30), datetime.date(2014, 1, 31)]