• 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__

  • 相关阅读:
    多文件编程(day13)
    字符串函数(day11)
    字符编码
    逻辑公式相等的自动证明
    排列组合问题之圆形分布
    排列组合之线性排列
    分金条
    进制的意义和算法
    集合的异或运算(对称差)
    集合习题之列出有限集合所有子集
  • 原文地址:https://www.cnblogs.com/wutou/p/15855917.html
Copyright © 2020-2023  润新知