获取两次之间的时间,时间跨度为一小时

本文关键字:时间 时间跨度 一小时 之间 两次 获取 | 更新日期: 2023-09-27 17:50:24

我有两次像

Time A:09:00 AM

Time B:06:00 PM我想知道时间A和时间B之间的总小时数并以1小时的时间跨度显示例如:

09:00 AM
10:00 AM
11:00 AM
12:00 PM
upto
06:00 PM

获取两次之间的时间,时间跨度为一小时

我想你需要这样的东西;

DateTime dt1 = DateTime.Parse("09:00 AM");
DateTime dt2 = DateTime.Parse("06:00 PM");
while (dt1 <= dt2)
{
     Console.WriteLine(dt1.ToString("hh:mm tt"));
     dt1 = dt1.AddHours(1);
}

输出将为;

09:00 AM
10:00 AM
11:00 AM
12:00 PM
01:00 PM
02:00 PM
03:00 PM
04:00 PM
05:00 PM
06:00 PM

这是一个演示。

很抱歉,我不明白你为什么对TimeSpan这个案子感兴趣。这是一段时间。你需要用DateTime获得每小时的时间。

使用此函数:

public static IEnumerable<DateTime> GetHours(DateTime startTime, DateTime endTime)
{
    var currentTime = startTime;
    while (currentTime <= endTime)
    {
        yield return currentTime;
        currentTime = currentTime.AddHours(1);
    }
}

如果你只需要两个事件之间的小时数,你可以使用的变体

(endTime - startTime).TotalHours

这将返回一个double。要计算迭代器返回的项目数,请使用

(int)(endTime - startTime).TotalHours + 1