用Pyhton 生成年/月/日方式的数据

自己喜欢用2022-01/2022-01-12 方式来组织目录,所以试一下 python 的实现
更新于: 2022-01-13 13:24:42

先看源码

years = range(2022, 2026)
months = range(1, 13)

def getDays(year, month):
    days = range(1, 32)
    if month == 2:
        if year % 4 == 0:
            days = range(1, 30)
        else:
            days = range(1, 29)
    elif month in [4, 6, 9, 11]:
        days = range(1, 31)
    return days

for year in years:
    for month in months:
        str_m = str(month).rjust(2, '0')
        print(f"{year}-{str_m}",getDays(year, month))

分析 getDays

  1. 2月份逻辑,分2块
    1. year%4:这种月份只有28天
    2. 其它情况有29天
  2. 在[4,6,9,11]这几个月份30天
  3. 其它情况 31天
# getDays 逻辑打平
1. 2月,year % 4 === 0 return range(1,30);
2. 2月,year % 4 !== 0 return range(1,29);
3. [4, 6, 9, 11]月, return range(1,31);
4. return range(1,32);

# 根据DRY原则,抽象 getTail(year, month) 方法;
1. 2月,year % 4 === 0 return 30;
2. 2月,year % 4 !== 0 return 29;
3. [4, 6, 9, 11]月, return 31;
4. return 32
实际上这个代码是 ai 自动生成的