python实现小时划分
1、要实现图表如下图
2、后台的数据结构
说明:将每个小时按10分钟为一个时间间隔,分成6段,00、10、20、30、40、50然后将每个时间段组成如下数据:{
'time': '22:30', 'start': '0', 'end': '10'}{'time': '22:40', 'start': '0', 'end': '5'}
实现的代码:
from datetime import datetime, timedelta def parse_time_interval(start_time, end_time): """ 将每个小时按10分钟为一个时间间隔,分成6段,00、10、20、30、40、50 然后将每个时间段组成如下数据: {'time': '22:30', 'start': '0', 'end': '10'} {'time': '22:40', 'start': '0', 'end': '5'} """ # 分析开始和结束时间字符串 start_time = datetime.strptime(start_time, '%H:%M') end_time = datetime.strptime(end_time, '%H:%M') # 定义时间间隔 time_intervals = [] current_time = datetime(start_time.year, start_time.month, start_time.day, start_time.hour) # 每小时循环10分钟 while current_time < end_time: next_time = current_time + timedelta(minutes=10) if next_time > end_time: next_time = end_time interval_start = current_time.strftime('%H:%M') interval_end = next_time.strftime('%H:%M') # 确定间隔内的开始和结束分钟 start_minute = (start_time - current_time).seconds // 60 end_minute = (end_time - current_time).seconds // 60 # 针对边缘情况进行调整 if start_minute > 10: start_minute = 0 if end_minute > 10: end_minute = 10 interval = { 'time': interval_start, 'start': str(start_minute), 'end': str(end_minute) } time_intervals.append(interval) current_time = next_time return time_intervals start_time = '13:07' end_time = '16:45' result = parse_time_interval(start_time, end_time) for interval in result: print(interval)
实现
心有猛虎,细嗅蔷薇