鱼C论坛

 找回密码
 立即注册
查看: 1586|回复: 3

[已解决]将一个月份转换为后面连续几个月如何写?

[复制链接]
发表于 2020-12-24 00:43:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 tryhi 于 2020-12-24 00:46 编辑

定义一个函数fun,两个参数
参数1:6位数的字符串
参数2:一个整数
返回一个列表,代表连续几个月份的6位数字符串

比方:
fun('202011',3)
返回--》
['202011','202012','202101']


fun('202012',5)
返回--》
['202012','202101','202102','202103','202104']


fun('201809',20)
返回--》
['201809','201810','201811','201812',
'201901','201902','201903','201904',
'201905','201906','201907','201908',
'201909','201910','201911','201912',
'202001','202002','202003','202004',]


请问应该如何写,有没有什么现成的模块可以用,还是只能纯计算,不停的判断是否达到12月?
最佳答案
2020-12-24 00:56:31
def fun(a , b):
    d = []
    y , m = int(a[:4]) , int(a[4:])
    for x in range(b):
        d . append('%04d%02d' % (y , m))
        m += 1
        if m > 12:
            y , m = y + 1 , 1
    return d
print(fun('201809' , 20))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-24 00:56:31 | 显示全部楼层    本楼为最佳答案   
def fun(a , b):
    d = []
    y , m = int(a[:4]) , int(a[4:])
    for x in range(b):
        d . append('%04d%02d' % (y , m))
        m += 1
        if m > 12:
            y , m = y + 1 , 1
    return d
print(fun('201809' , 20))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-12-24 01:00:20 | 显示全部楼层

感谢,完美,原来是我想复杂了,这回帖速度这么快,厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-24 01:12:27 | 显示全部楼层
tryhi 发表于 2020-12-24 01:00
感谢,完美,原来是我想复杂了,这回帖速度这么快,厉害

    兄弟客气
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 01:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表