首页 > 解决方案 > 从列表中计算日期并返回日期格式 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,我在列表中添加了价值,但我不知道如何获得列表中所有时间的总和。它只是一个时间,不包含日期。

请帮我解决问题。

标签: c#

解决方案


我强烈建议您存储 s 列表TimeSpan而不是strings 列表,并且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"));

推荐阅读