问题描述:
提供一个日期 (周日)---例 20190519 ,获取
本周起止日期
上周起止日期
上月同周起止日期 (本周向前推4周)
去年同期周起止日期 (按年计同周)
月至今起止日期
月至今上月同期
月至今去年同期
解决:
import datetime
from dateutil.relativedelta import relativedelta
def parse_date(lastest_sunday):
month_first_day=datetime.date(int(str(lastest_sunday)[0:4]),int(str(lastest_sunday)[4:6]),1)
last_year_day=datetime.date(int(str(lastest_sunday)[0:4])-1,1,1)
week_end=datetime.date(int(str(lastest_sunday)[0:4]),int(str(lastest_sunday)[4:6]),int(str(lastest_sunday)[6:8]))
week_start=week_end-datetime.timedelta(days=6)
last_week_start=week_start-datetime.timedelta(weeks=1)
last_week_end=week_end-datetime.timedelta(weeks=1)
lm_week_start=week_start-datetime.timedelta(weeks=4)
lm_week_end=week_end-datetime.timedelta(weeks=4)
mtd_start=month_first_day
mtd_end=week_end
lm_mtd_start=mtd_start- relativedelta(months=1)
lm_mtd_end=mtd_end- relativedelta(months=1)
ly_mtd_start=mtd_start- relativedelta(months=12)
ly_mtd_end=mtd_end- relativedelta(months=12)
week_num=week_start.isocalendar()[1]
ly_week_num=1
while int(last_year_day.year)==int(week_start.year)-1:
if ly_week_num==week_num and last_year_day.weekday()+1==1:
ly_week_start=last_year_day
ly_week_end=ly_week_start+datetime.timedelta(days=6)
break
last_year_day=last_year_day+datetime.timedelta(days=1)
ly_week_num=last_year_day.isocalendar()[1]
config={
'week_end':int(week_end.strftime('%Y%m%d')),
'week_start':int(week_start.strftime('%Y%m%d')),
'last_week_start':int(last_week_start.strftime('%Y%m%d')),
'last_week_end':int(last_week_end.strftime('%Y%m%d')),
'lm_week_start':int(lm_week_start.strftime('%Y%m%d')),
'lm_week_end':int(lm_week_end.strftime('%Y%m%d')),
'mtd_start':int(mtd_start.strftime('%Y%m%d')),
'mtd_end':int(mtd_end.strftime('%Y%m%d')),
'lm_mtd_start':int(lm_mtd_start.strftime('%Y%m%d')),
'lm_mtd_end':int(lm_mtd_end.strftime('%Y%m%d')),
'ly_mtd_start':int(ly_mtd_start.strftime('%Y%m%d')),
'ly_mtd_end':int(ly_mtd_end.strftime('%Y%m%d')),
'ly_week_start':int(ly_week_start.strftime('%Y%m%d')),
'ly_week_end':int(ly_week_end.strftime('%Y%m%d'))
}
return config
网友评论