C# 代码示例:按小时拆分时间段
以下是一个示例代码,可以将给定的时间段按小时拆分成多个子时间段:
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
原文地址: https://www.cveoy.top/t/topic/qqhY 著作权归作者所有。请勿转载和采集!