python输入数字变成月份

  • 时间:
  • 7526人关注

python输入数字变成月份:1、可计算给定区间的时间差,即两者之间共包含几个月。2、由第一个月(开始时间)逐渐累积,最后得到给定时间区间所有月份的清单。,另外这篇文章主要知识点是关于Python、python教程的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子资料:

我们整理一篇关于《python输入数字变成月份》技术文章,实例讲的很实用,这里给大家转摘到这里,看完如果觉得有用请记得收藏。

python输入数字变成月份

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输入数字变成月份的方法,基本的流程分享给大家,看懂后可以进行实例部分的尝试。

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

上一篇:如何使用python建立TCP框架

下一篇:python tqdm有哪些用法

相关内容

  • 关于python如何获取网页中所有图片并筛选指定分辨率

    下面小编就为大家分享一篇python获取网页中所有图片并筛选指定分辨率的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    01-14python获取网页中所有图片并筛选指定分辨率的方法

    阅读更多
  • 2种修改python字典内的值方法总结

    讲述了如何修改python字典内的值

    07-21如何修改python字典内的值

    阅读更多
  • python接单平台简单整理

    学习编程不仅仅可以让你找到一份高薪的工作,而且如果你并不打算转行或者还在校学生的话,你可以考虑在网上接一些Python相关的小单子,不仅可以给自己练手,还能赚钱。接单网站很多,比

    12-14python接单平台有哪些

    阅读更多
  • 介绍python中数组和矩阵乘法及使用示例代码

    这篇文章主要介绍了python中数组和矩阵乘法及使用总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    03-16python中数组和矩阵乘法及使用总结(推荐)

    阅读更多
  • Python中的命令行参数解析工具docopt用法知识点

    docopt 是一个用来解析命令行参数的工具,当想要在 Python 程序后面附加参数时,就不需要再为此而发愁了。下面这篇文章主要介绍了Python中命令行参数解析工具之docopt的相关资料,介绍的非常详

    11-04Python中的命令行参数解析工具之docopt详解

    阅读更多
  • Python生物信息学数据管理(含源码)

    Python生物信息学数据管理(含源码)

    生物科学学校的Python课程内容教材内容,合适大学本科课堂教学或制造行业人员的Python短期培训班。这书案例借以处理分子生物学难题,根据程序编写手法的方式,包含尽量多的机构、剖析、

    大小:70.7 MBPython

    立即下载
  • Python程序设计

    Python程序设计

    这书具备下列特性: ●普遍应用计算机图形学这书出示1个简易的图型程序包graphics.py做为实例。 ●轻松愉快的事例这书包括了详细的程序编写实例来处理具体难题。 ●亲近大自然的写作以大

    大小:17.9 MBPython编程

    立即下载
  • Python设计模式 第2版

    Python设计模式 第2版

    这本书全面揭示有关设计模式的内容,并结合Python语言进行示例化的解析,适合那些关注软件设计原则,并想将you秀的设计模式应用到Python编程当中的读者阅读

    大小:21.9 MBPython

    立即下载

学习笔记

27小时10分钟前回答

Python之dict(或对象)与json之间的互相转化实例

在Python语言中,json数据与dict字典以及对象之间的转化,是必不可少的操作。 在Python中自带json库。通过import json导入。 在json模块有2个方法, loads():将json数据转化成dict数据 dumps():将dict数据转化成json数据 load():读取json文件数据,转成dict数据 dump():将dict数据转化成json数据后写入json文件 下面是具体的示例: dict字典转json数据 import jsondef dict_to_json(): dict = {} dict['name'] = 'many' dict['age'] = 10 dict['sex'] = 'male' print(dict) # 输出:{'name': 'many', 'age': 10, 'sex': 'male'} j = json.dumps(dict) print(j) # 输出:{"name": "many", "age": 10, "sex": "male"}if __name__ == '__main__': dict_to_json() 对象转json数据 import jsondef obj_to_json(): stu = Student('007', ……

42小时55分钟前回答

python并发编程多进程之守护进程原理解析

守护进程 主进程创建子进程目的是:主进程有一个任务需要并发执行,那开启子进程帮我并发执行任务 主进程创建子进程,然后将该进程设置成守护自己的进程 关于守护进程需要强调两点: 其一: 守护进程会在主进程代码执行结束后就终止 其二: 守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allowed to have children 如果我们有两个任务需要并发执行,那么开一个主进程和一个子进程分别去执行就ok了,如果子进程的任务在主进程任务结束后,就没有存在的必要了,那么该子进程应该在开启前就被设置成守护进程。主进程代码运行结束,守护进程随即终止 子进程还没来得……