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)
實現