c# - 如何创建分钟的时间范围?
问题描述
我有这个函数,它通过增加一个小时来返回一个时间范围(两个 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))
以便以后阅读代码时更清楚。
推荐阅读
- android - 如何从firebase检索嵌套数据
- python - 比较 pd DataFrame 时出现 AssertionError
- sql - 从 20+ 列 sql 中选择 3 个非空值
- java - 如何将不同类型的 ArrayLists 添加到 Array 中
- node.js - 如何处理返回承诺的异步函数?
- javascript - 通过公共键/索引合并数组项和对象值
- curl - 如何使用 wget 或 curl 下载使用 TLS v1.0 的网页
- reactjs - Laravel 灯塔当前用户通过下一个阿波罗为空
- linux - cron 脚本未在 Raspberry Pi 上执行
- flutter - AndroidManifest 颤动中缺少默认通知通道元数据