【每日一练】Python对日期范围自动补充(个人需求,不算题目)

今天在过需求时,遇到一个小需求,大致内容如下:

1、如列表 a = ['2.12-2.13', 0.449, 68.0, 25.0]

自动改写,形式:

[['2.12', 0.449, 68.0, 25.0], 
['2.13', 0.449, 68.0, 25.0]]

分析1:

也就是说列表的第一个元素【2.12-1.13】,表示一个一个范围,我们生成的列表能够自动补充其范围内的日期

分析2:

如: ['1.27-2.1', 0.449, 77.0, 25.0],需要考虑跨月的情况

[['1.27', 0.449, 77.0, 25.0], 
['1.28', 0.449, 77.0, 25.0], 
['1.29', 0.449, 77.0, 25.0], 
['1.30', 0.449, 77.0, 25.0],
['1.31', 0.449, 77.0, 25.0],
['2.1', 0.449, 77.0, 25.0]]

下面将会分享完整的代码,分享之前,大家感兴趣的可以当成一道小题目,自己尝试一下

from datetime import datetime, timedelta

def all_data_range(data):
    date_range = data[0]

    start_date_str, end_date_str = date_range.split('-')

    start_date = datetime.strptime(start_date_str, '%m.%d')
    end_date = datetime.strptime(end_date_str, '%m.%d')

    delta = end_date - start_date

    result = []
    for i in range(delta.days + 1):
        date = start_date + timedelta(days=i)
        date_str = f"{date.month}.{date.day}"
        result.append([date_str, data[1], data[2], data[3]])
    print(result)
    return  result
    # for r in result:
    #     print(r)
all_data_range(['1.27-2.5', 0.449, 77.0, 25.0])

希望对大家有帮助

致力于办公自动化的小小程序员一枚#

都看到这了,关注+点赞+收藏=不迷路!!

如果你想知道更多关于Python办公自动化的知识各位大佬给个关注吧!

你可能感兴趣的:(每日一练,开发语言,python)