python获取一段时间范围内的日期、月份

710 阅读1分钟

记录下最近工作中的需求,可以自行改成返回列表的

获取给定时间范围内的日期

def get_date_iter(start_date, end_date):
    """
    获取指定时间段内的日期
    :param start_date: 起始时间 --> str YYYYmmdd
    :param end_date: 结束时间 --> str YYYYmmdd
    :return: iter
    """
    dt = datetime.datetime.strptime(start_date, '%Y%m%d')
    date = start_date[:]
    yield date
    while date < end_date:
        dt = dt + datetime.timedelta(days=1)
        date = dt.strftime("%Y%m%d")
        yield date

获取给定时间范围内的月份

def get_month_iter(start_month, end_month):
    """
    获取时间段内的月份
    :param start_month: 开始月份 --> str YYYYmm
    :param end_month: 结束月份 --> str YYYYmm
    :return: iter
    """
    dt = datetime.datetime.strptime(start_month, '%Y%m')
    month = start_month[:]
    yield month
    while month < end_month:
        dt = dt + datetime.timedelta(days=calendar.monthrange(dt.year, dt.month)[1])
        month = dt.strftime("%Y%m")
        yield month