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)

實現

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章