c# - 从列表中计算日期并返回日期格式 0:0:0 的总和
问题描述
我有一个名为 IdleList 的列表,其中有多个日期,如图所示,一个包含日期的列表可以超过 5 个,我想要日期的总和,例如 0:0:11 + 0:0:14 = 0:0:25 .
这是我的清单
List<string> IdleList = new List<string>();
string mm = ts.ToString(@"h\:m\:s");
IdleList.Add(mm);
ts 是 TimeSpan,我在列表中添加了价值,但我不知道如何获得列表中所有时间的总和。它只是一个时间,不包含日期。
请帮我解决问题。
解决方案
我强烈建议您存储 s 列表TimeSpan
而不是string
s 列表,并且TimeSpan
始终使用 s。仅在需要将它们输出给用户时才转换为字符串。
如果您无法控制字符串列表,则可以将其转换为一堆时间跨度,如下所示:
var timeSpans = IdleList.Select(x => TimeSpan.ParseExact(x, "h\\:m\\:s", CultureInfo.InvariantCulture));
然后计算它们的总和...
var sum = timeSpans.Aggregate(TimeSpan.Zero, (x, y) => x.Add(y));
并打印出来:
Console.WriteLine(sum.ToString("h\\:m\\:s"));
推荐阅读
- reactjs - 如何在没有 ref 的情况下在 React 中创建待办事项列表
- javascript - Python CGI 没有做任何事情。我是否配置错误?
- arrays - Stack View 的子视图没有正确更新
- python - 自定义模型权重不变(张量流)
- python-3.x - 如何从docker python算术程序将输出存储在excel中
- node.js - 如何`yarn link`一个dist文件夹?
- python - 从类中选择一个随机方法
- mysql - 如果变量为空如何执行
- angular - Angular 8:获取错误错误:生产模式下的“[object Object]”
- bash - 当第一个参数以破折号开头时,Linux 中的选项无效或无法识别 `-`