以下是一个示例代码,可以将给定的时间段按小时拆分成多个子时间段:

using System;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        DateTime startTime = new DateTime(2022, 1, 1, 10, 0, 0);
        DateTime endTime = new DateTime(2022, 1, 1, 15, 30, 0);
        int intervalMinutes = 60; // 拆分间隔为60分钟

        List<TimeRange> timeRanges = SplitTimeRange(startTime, endTime, intervalMinutes);

        foreach (var timeRange in timeRanges)
        {
            Console.WriteLine('开始时间: ' + timeRange.StartTime.ToString("yyyy-MM-dd HH:mm:ss"));
            Console.WriteLine('结束时间: ' + timeRange.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
            Console.WriteLine();
        }
    }

    public static List<TimeRange> SplitTimeRange(DateTime startTime, DateTime endTime, int intervalMinutes)
    {
        List<TimeRange> timeRanges = new List<TimeRange>();

        DateTime currentStartTime = startTime;
        DateTime currentEndTime = startTime.AddMinutes(intervalMinutes);

        while (currentEndTime <= endTime)
        {
            timeRanges.Add(new TimeRange(currentStartTime, currentEndTime));

            currentStartTime = currentEndTime;
            currentEndTime = currentEndTime.AddMinutes(intervalMinutes);
        }

        // 处理最后一个子时间段,若不满一个intervalMinutes,则结束时间为endTime
        if (currentStartTime != endTime)
        {
            timeRanges.Add(new TimeRange(currentStartTime, endTime));
        }

        return timeRanges;
    }
}

public class TimeRange
{
    public DateTime StartTime { get; set; }
    public DateTime EndTime { get; set; }

    public TimeRange(DateTime startTime, DateTime endTime)
    {
        StartTime = startTime;
        EndTime = endTime;
    }
}

在上面的示例中,我们定义了一个SplitTimeRange方法,该方法接受开始时间、结束时间和拆分间隔作为参数,并返回一个包含拆分后时间段的List<TimeRange>

Main方法中,我们定义了一个开始时间为10:00 AM,结束时间为15:30 PM的时间段,并将拆分间隔设置为60分钟。然后,我们调用SplitTimeRange方法将时间段拆分成多个子时间段,并将结果打印出来。

输出示例:

开始时间: 2022-01-01 10:00:00
结束时间: 2022-01-01 11:00:00

开始时间: 2022-01-01 11:00:00
结束时间: 2022-01-01 12:00:00

开始时间: 2022-01-01 12:00:00
结束时间: 2022-01-01 13:00:00

开始时间: 2022-01-01 13:00:00
结束时间: 2022-01-01 14:00:00

开始时间: 2022-01-01 14:00:00
结束时间: 2022-01-01 15:00:00

开始时间: 2022-01-01 15:00:00
结束时间: 2022-01-01 15:30:00
C# 代码示例:按小时拆分时间段

原文地址: https://www.cveoy.top/t/topic/qqhY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录