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)

实现

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。