如何创建以分钟为单位的时间范围?
How can I create a time range with minutes?
我有这个功能,returns 一个时间范围(在两个 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
构造函数的 Documentation。
public TimeSpan (int hours, int minutes, int seconds);
将 for 循环中的赋值更改为
dt = dt.Add(new TimeSpan(0,1,0))
因为第二个参数是指分钟。第一个是小时。
或者你可以使用
dt = dt.Add(TimeSpan.FromMinutes(1))
为了后面看代码的时候更清楚
我有这个功能,returns 一个时间范围(在两个 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
构造函数的 Documentation。
public TimeSpan (int hours, int minutes, int seconds);
将 for 循环中的赋值更改为
dt = dt.Add(new TimeSpan(0,1,0))
因为第二个参数是指分钟。第一个是小时。 或者你可以使用
dt = dt.Add(TimeSpan.FromMinutes(1))
为了后面看代码的时候更清楚