python时间选择年和月(Python中日期月份差额)

from datetime import datetime,date,timedelta

from dateutil.relativedelta import relativedelta

##返回两个日期之间的天数

def dates_between(d1,d2):

return abs((d1-d2).days)

##返回两个月份之间的月数

def months_between(m1,m2):

return abs(m1.year - m2.year)*12 abs(m1.month - m2.month)

##返回两个日期之间的所有日期字符串(以英文逗号分隔,包含起止日期)

def get_all_dates_between(d1,d2):

ds=''

for i in range(dates_between(datetime.strptime(str(d1),'%Y%m%d'),datetime.strptime(str(d2),'%Y%m%d')) 1):

ds =(datetime.strptime(str(d1),'%Y%m%d') timedelta(days=(-i if d1>=d2 else i))).strftime("%Y%m%d") ','

return ds[:-1]

##返回两个月份之间的所有月份字符串(以英文逗号分隔,包含起止月份)

def get_all_months_between(m1,m2):

ms=''

for i in range(months_between(datetime.strptime(str(m1),'%Y%m'),datetime.strptime(str(m2),'%Y%m')) 1):

ms =(datetime.strptime(str(m1),'%Y%m') relativedelta(months=(-i if m1>=m2 else i))).strftime("%Y%m") ','

return ms[:-1]

print(months_between(datetime(2021,2,28), datetime(2021,12,1)))

print(months_between(datetime(2021,12,1), datetime(2021,2,28)))

print(dates_between(datetime(2021,5,1), datetime(2021,6,28)))

print(dates_between(datetime(2021,6,28), datetime(2021,5,1)))

print(get_all_months_between('202102','202112'))

print(get_all_months_between('202112','202102'))

print(get_all_dates_between('20210628','20210501'))

print(get_all_dates_between('20210501','20210628'))

python时间选择年和月(Python中日期月份差额)(1)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页