1、计算两个日期之间相隔的天数
# 开始时间
start_date = '2018-05-01'
# 结束时间
end_date = '2019-03-09'
date_time1 = datetime.datetime.strptime(end_date, '%Y-%m-%d') # 结束时间
date_time0 = datetime.datetime.strptime(start_date, '%Y-%m-%d') # 开始时间
d = (date_time1 - date_time0).days + 1
ls_date = []
for i in range(d): # 每一轮循环统计一天或者一周或者所有的
date_time = date_time0 + datetime.timedelta(days=i) # 根据i调整天数
ls_date.append(str(date_time)[:10])
# ls_date.append(str(date_time)) # '2018-05-04 00:00:00'
2、将日期分割成每周
unit_num = []
date_time00 = date_time0.strftime('%w') # 开始时间
if int(date_time00) == 0:
date_time00 = 7
a = 7 - int(date_time00) + 1
unit_num.append(ls_date[:a]) # ls_date为所有日期的集合
ls_date = ls_date[a:]
for i in range(0, len(ls_date), 7):
unit_num.append(ls_date[i:i + 7])
3、获取时间段
# 计算一天的时间段
time = []
for i in range(17): # 16个时间段,从7点至23点
date_time = datetime.datetime.strptime('07:00:00', '%H:%M:%S') # 为方便相加
date_time = date_time + datetime.timedelta(hours=i)
time.append(str(date_time)[11:])
x_time = []
for i in range(1, len(time)):
x_time.append(time[i - 1][:2] + '~' + time[i][:2])