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')
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。