Python 日期区间处理 (本周本月上周上月...)
工具类
classCalendarUtils:
"""
日期工具类
"""
@staticmethod
defdelta_day(delta=0):
"""
:paramdelta:偏移量
:return:0今天,1昨天,2前天,-1明天...
"""
return(datetime.now()+timedelta(days=delta)).strftime('%Y-%m-%d')
@staticmethod
defdelta_week(delta=0):
"""
:paramdelta:偏移量
:return:0本周,-1上周,1下周...
"""
now=datetime.now()
week=now.weekday()
_from=(now-timedelta(days=week-7*delta)).strftime('%Y-%m-%d')
_to=(now+timedelta(days=6-week+7*delta)).strftime('%Y-%m-%d')
return_from,_to
@staticmethod
defdelta_month(delta=0):
"""
:paramdelta:偏移量
:return:0本月,-1上月,1下月,下下个月...
"""
def_delta_month(__year,__month,__delta):
_month=__month+__delta
if_month<1:
delta_year=math.ceil(abs(_month)/12)
delta_year=delta_yearifdelta_yearelse1
__year-=delta_year
_month=delta_year*12+__month+__delta
elif_month>12:
delta_year=math.floor(_month/12)
__year+=delta_year
_month%=12
return__year,_month
now=datetime.now()
_from=datetime(*_delta_month(now.year,now.month,delta),1)
_to=datetime(*_delta_month(_from.year,_from.month,1),1)-timedelta(days=1)
return_from.strftime('%Y-%m-%d'),_to.strftime('%Y-%m-%d')
@staticmethod
defdelta_year(delta=0):
"""
:paramdelta:偏移量
:return:0今年,-1去年,1明年...
"""
now=datetime.now()
_from=datetime(now.year+delta,1,1)
_to=datetime(_from.year+1,1,1)-timedelta(days=1)
return_from.strftime('%Y-%m-%d'),_to.strftime('%Y-%m-%d')
if__name__=='__main__':
print('当前日期:',datetime.now())
print('*'*40)
print('今天:',CalendarUtils.delta_day())
print('昨天:',CalendarUtils.delta_day(-1))
print('前天:',CalendarUtils.delta_day(-2))
print('明天:',CalendarUtils.delta_day(1))
print('后天:',CalendarUtils.delta_day(2))
print('*'*40)
print('本周:',CalendarUtils.delta_week())
print('上周:',CalendarUtils.delta_week(-1))
print('下周:',CalendarUtils.delta_week(1))
print('*'*40)
print('本月:',CalendarUtils.delta_month())
print('上月:',CalendarUtils.delta_month(-1))
print('下月:',CalendarUtils.delta_month(1))
print('*'*40)
print('本年:',CalendarUtils.delta_year())
print('去年:',CalendarUtils.delta_year(-1))
print('明年:',CalendarUtils.delta_year(1))
运行结果
当前日期: 2019-06-2611:01:34.662560
****************************************
今天: 2019-06-26
昨天: 2019-06-25
前天: 2019-06-24
明天: 2019-06-27
后天: 2019-06-28
****************************************
本周: ('2019-06-24','2019-06-30')
上周: ('2019-06-17','2019-06-23')
下周: ('2019-07-01','2019-07-07')
****************************************
本月: ('2019-06-01','2019-06-30')
上月: ('2019-05-01','2019-05-31')
下月: ('2019-07-01','2019-07-31')
****************************************
本年: ('2019-01-01','2019-12-31')
去年: ('2018-01-01','2018-12-31')
明年: ('2020-01-01','2020-12-31')
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。