如何用分钟创建时间范围



我有一个函数,它通过增加一个小时来返回一个时间范围(在两个TimeSpan之间(。

public static IEnumerable < TimeSpan > Range(TimeSpan start, TimeSpan end) {
for (var dt = start; dt <= end; dt = dt.Add(new TimeSpan(1, 0, 0))) {
yield
return dt;
}
}
// As an example
TimeSpan start = new TimeSpan(09, 0, 0);
TimeSpan end = new TimeSpan(12, 0, 0);
var range = Range(start.Ticks, end.Ticks);

结果:

09:00:00
10:00:00
11:00:00
12:00:00

我想得到的是一个时间范围(按分钟而不是小时递增(:

预期结果:

09:00:00
09:01:00
09:02:00
09:03:00
...
11:59:00
12:00:00

我能做些什么来使它发挥作用?

请阅读TimeSpan构造函数的文档。

public TimeSpan (int hours, int minutes, int seconds);

将for循环中的分配更改为

dt = dt.Add(new TimeSpan(0,1,0))

因为第二个参数指的是分钟。第一个是小时。或者你可以使用

dt = dt.Add(TimeSpan.FromMinutes(1))

以便在以后阅读代码时更加清楚。

相关内容

  • 没有找到相关文章

最新更新