Python生成两位数日期、两位数月日
-
1.在开始和结束日期设置范围,这里是从大月到小月生成;
2.可以将下面"月减一和天减一",减法修改成加法 ”月加一和天加一“ 来实现小月到大月。
3.代码里将结果保存到列表中,你可以根据实际情况放到其他类型变量里。
## 开始、结束日期
date_start = '1202'
date_end = '0930'
## 全局变量
_list_month_day = []
## 判断date_start_month月有多少天,并设置date_start_month月的天数
def set_month_days(date_start_month):
month = date_start_month
## 31天的月份
month_31day = "01030507081012"
## 30天的月份
month_30day = "04060911"
## 默认day是28天
day = 28
## 如果 month_31day 或 month_30day 里包含 month 为真,则设置对应天数
if month in month_31day:
day = 31
elif month in month_30day:
day = 30
## 给调用者返回天数
return day
def add_month_day():
date_start_month = date_start[0:2]
date_start_day = date_start[2:4]
## 如果月的第一位是0则取第二位
if date_start_month[:1] == "0":
date_start_month = date_start_month[1:2]
## 如果日的第一位是0则取第二位
if str(date_start_day)[:1] == "0":
date_start_day = date_start_day[1:2]
## 循环产生月和日
while True:
## 将上一次循环设置成int类型,转回str类型
date_start_month = str(date_start_month)
date_start_day = str(date_start_day)
## 如果日等于1号,则月份减一,
## 并调用set_month_days函数,获取本月天数
if date_start_day == "1":
## 月减一
date_start_month = int(date_start_month) - 1
date_start_day = set_month_days(str(date_start_month))
else:
## 天减一
date_start_day = int(date_start_day) - 1
## month_day值:1.拼接月+日,不足两位,左补0
## 2.上面运算把月和日转成int型,拼接需要转str型
month_day = "{:0>2}".format(eval(str(date_start_month))) + "{:0>2}".format(eval(str(date_start_day)))
## 将生成的月和日添加到全局变量列表中,方便其他类或方法使用
global _list_month_day
_list_month_day.append(month_day)
## 如果当前月日和设置的date_end相等,则退出while循环
if date_end == month_day:
break
if ( __name__ == 'main' or __name__ == '__main__'):
add_month_day();
print(f"\n结果:\n{_list_month_day}")
结果:

__EOF__
浙公网安备 33010602011771号