• 技术文章 >Python技术 >Python基础教程

    python输入数字变成月份

    小妮浅浅小妮浅浅2021-05-27 09:25:21原创8017

    1、思路说明

    可计算给定区间的时间差,即两者之间共包含几个月。然后由第一个月(开始时间)逐渐累积,最后得到给定时间区间所有月份的清单。

    2、时间差计算:我们可以使用第三方库 dateutil中的rrule.count函数来实现。

    Impor tdatetime from dateutil importrrule
     
    start=datetime.datetime.strptime('2019.01','%Y.%m')
     
    end=datetime.datetime.strptime('2019.05','%Y.%m')print(start.month)
     
    rrule.rrule(rrule.MONTHLY,dtstart=start,until=end).count()

    3、每月累积计算:在这里,我们可以使用for循环和range()函数,根据总月数,逐步累积,例如:2019.01-2019.05共5个月,从0到4迭代,从1+0=1到1+4=5,就可以得到所有月份;此外,当月迭代累积结果超过12时,将累积结果除以12取余,并将年份加1,就可以得到正确的年月时间。

    importdatetimefrom dateutil importrruledefget_each_month(start_month, end_month):if str(start_month).count('.') != 1 or str(end_month).count('.') != 1:print("Parameter Error: Pls input a string such as '2019.01'")return[]if int(str(start_month).split('.')[1]) > 12 or int(str(end_month).split('.')[1]) > 12:print('Parameter Error: Pls input correct month range such as between 1 to 12')return[]if int(str(start_month).split('.')[1]) == 0 or int(str(end_month).split('.')[1]) == 12:print('Parameter Error: Pls input correct month range such as between 1 to 12')return[]
     
    start= datetime.datetime.strptime(start_month, "%Y.%m")
     
    end= datetime.datetime.strptime(end_month, "%Y.%m")
     
    month_count= rrule.rrule(rrule.MONTHLY,dtstart=start,until=end).count() #计算总月份数
     
    if end
     
    list_month=[]
     
    year= int(str(start)[:7].split('-')[0]) #截取起始年份
     
    for m in range(month_count): #利用range函数填充结果列表
     
    month = int(str(start)[:7].split('-')[1]) #截取起始月份,写在for循环里,作为每次迭代的累加基数
     
    month = month +mif month > 12:if month%12 >0:
     
    month= month%12 #计算结果大于12,取余数
     
    if month==1:
     
    year+= 1 #只需在1月份的时候对年份加1,注意year的初始化在for循环外
     
    else:
     
    month= 12
     
    if len(str(month))==1:
     
    list_month.append(str(year)+ '.0' +str(month))else:
     
    list_month.append(str(year)+ '.' +str(month))return list_month

    以上就是python输入数字变成月份的方法,基本的流程分享给大家,看懂后可以进行实例部分的尝试。更多Python学习指路:python基础教程

    本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

    专题推荐:python输入
    上一篇:Python类属性如何使用 下一篇:python输入三个数字从小到大排序

    相关文章推荐

    • 一看就懂的Python输入和输出、格式化字符串方法• python输入用空格吗• 如何用python输入数字• python输入时怎么换行• python输入三个数求平均值• python输入一个列表求平均值• python输入身份证号输出出生年月• python输入成绩求平均分• Python输入三个数用空格隔开• python输入身高体重算BMI

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网