C# 获取两个日期时间对象之间的整小时值

标签 c# .net datetime

我试图在 2 个日期时间之间获取受影响的时间,我发现的只是一个 python 解决方案。

例如,“开始”是 09:30,“结束”是 14:00(同一天)。我想要返回的值是

[9:00, 10:00, 11:00, 12:00, 13:00, 14:00]

Python get whole hour values between 2 datetime objects

我似乎找不到任何与 C# 等效的东西。

最佳答案

所以您想要一个包含两个日期之间所有时间的列表?您可以使用此查询:

TimeSpan ts =  dt2 - dt1;
IEnumerable<int> hoursBetween = Enumerable.Range(0, (int)ts.TotalHours)
    .Select(i => dt1.AddHours(i).Hour);

样本日期:

DateTime dt1 = new DateTime(2013, 07, 08, 15, 50, 00);
DateTime dt2 = new DateTime(2013, 07, 10, 19, 30, 00);
TimeSpan ts =  dt2 - dt1;

IEnumerable<int> hoursBetween = Enumerable.Range(0, (int)ts.TotalHours)
    .Select(i => dt1.AddHours(i).Hour);

foreach (int hour in hoursBetween)
    Console.WriteLine(hour);

输出:

15
16
17
18
19
20
21
22
23
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

关于C# 获取两个日期时间对象之间的整小时值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17528181/

相关文章:

java - 如何使用 joda-time 将 3 位数 24 小时时间转换为 12 小时制?

c# - 检查服务是否挂起的最佳方法

c# - 如何使用 Mutex 解决可能的竞争条件

c# - MediaPlayer 没有循环/重复提供的音频

c# - Expression.Call 中的 ToUpper()

c# - 每次升级从我的 dotNet 应用程序使用的 COM 库时,我是否需要重建和重新部署?

python - 使用日期操作数据框

c# - Label_ 标记在 Reflector 中来自哪里,如何破译它们?

c# - MEF:我应该把 CompositionContainer 放在哪里?

ruby-on-rails - 如何计算自 Ruby 中的给定日期以来经过了多少年?