十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決
這篇文章主要介紹python輸入數(shù)字變成月份的示例,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
公司主營(yíng)業(yè)務(wù):做網(wǎng)站、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出臨縣免費(fèi)做網(wǎng)站回饋大家。
1、思路說(shuō)明
可計(jì)算給定區(qū)間的時(shí)間差,即兩者之間共包含幾個(gè)月。然后由第一個(gè)月(開(kāi)始時(shí)間)逐漸累積,最后得到給定時(shí)間區(qū)間所有月份的清單。
2、時(shí)間差計(jì)算:我們可以使用第三方庫(kù) dateutil中的rrule.count函數(shù)來(lái)實(shí)現(xiàn)。
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、每月累積計(jì)算:在這里,我們可以使用for循環(huán)和range()函數(shù),根據(jù)總月數(shù),逐步累積,例如:2019.01-2019.05共5個(gè)月,從0到4迭代,從1+0=1到1+4=5,就可以得到所有月份;此外,當(dāng)月迭代累積結(jié)果超過(guò)12時(shí),將累積結(jié)果除以12取余,并將年份加1,就可以得到正確的年月時(shí)間。
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() #計(jì)算總月份數(shù) if end list_month=[] year= int(str(start)[:7].split('-')[0]) #截取起始年份 for m in range(month_count): #利用range函數(shù)填充結(jié)果列表 month = int(str(start)[:7].split('-')[1]) #截取起始月份,寫(xiě)在for循環(huán)里,作為每次迭代的累加基數(shù) month = month +mif month > 12:if month%12 >0: month= month%12 #計(jì)算結(jié)果大于12,取余數(shù) if month==1: year+= 1 #只需在1月份的時(shí)候?qū)δ攴菁?,注意year的初始化在for循環(huán)外 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的五大特點(diǎn):1.簡(jiǎn)單易學(xué),開(kāi)發(fā)程序時(shí),專(zhuān)注的是解決問(wèn)題,而不是搞明白語(yǔ)言本身。2.面向?qū)ο?,與其他主要的語(yǔ)言如C++和Java相比, Python以一種非常強(qiáng)大又簡(jiǎn)單的方式實(shí)現(xiàn)面向?qū)ο缶幊獭?.可移植性,Python程序無(wú)需修改就可以在各種平臺(tái)上運(yùn)行。4.解釋性,Python語(yǔ)言寫(xiě)的程序不需要編譯成二進(jìn)制代碼,可以直接從源代碼運(yùn)行程序。5.開(kāi)源,Python是 FLOSS(自由/開(kāi)放源碼軟件)之一。
以上是“python輸入數(shù)字變成月份的示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!