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}")
  
    

  

结果:

Python生成两位数日期、两位数月日

 

 

__EOF__

上一篇:css:垂直方向外边距margin塌陷问题及解决


下一篇:net start mysql 发生系统错误2