python获取指定日期内的所有天数日期,所有月份(亲测没问题)

python获取指定日期内的所有日期,所有月份(亲测没问题)

 

 

# coding=utf-8
import datetime
from datetime import timedelta
 
 
def gen_dates(b_date, days):
    day = timedelta(days=1)
    # print(day)
    for i in range(days):
        # print(b_date + day*i)
        yield b_date + day*i
 
 
def get_date_list(start_date, end_date):   #end_date=None
    """
    获取日期列表
    :param start: 开始日期
    :param end: 结束日期
    :return:
    """
    if start_date is not None:
        start = datetime.datetime.strptime(start_date, "%Y-%m-%d")
    if end_date is None:
        end = datetime.datetime.now()
    else:
        end = datetime.datetime.strptime(end_date, "%Y-%m-%d")
    data = []
    for d in gen_dates(start, ((end-start).days + 1)):    # 29 + 1
        # print(d)   # datetime.datetime  类型
        data.append(d.strftime("%Y-%m-%d"))
    return data
 
def get_month_list(start_date, end_date):
    dates = get_date_list(start_date, end_date)
    months = []
    for i in dates:
        if i[:7] not in months:
            months.append(i[:7])
    return months
 
 
if __name__ == '__main__':
    start_date = '2018-03-01'
    end_date = '2018-08-30'
    print(get_date_list(start_date, end_date))    # 两个日期之间的所有日期,包括开始日期, 包括 结束日期
    print(get_month_list(start_date, end_date)) # 两个日期之间的所有月份,包括开始月份, 包括 结束月份
 

 

 

 

 

返回列表
上一篇: