c# 时间区间求并集
作者:互联网
var list={};//有时间的集合 createtime endtime 时间戳 int 单位 精确到秒
var ranges = new List<IEnumerable<int>>();
list.ForEach(s =>
ranges.Add( Enumerable.Range(s.createtime, s.endtime- s.createtime)));// 第一个参数:开始时间 第二个参数:时间间隔
var unionOfRanges = Enumerable.Empty<int>();
//时间戳取并集 精确秒 合并重复时间戳
foreach (var range in ranges)
{
unionOfRanges = unionOfRanges.Union(range);
}
//返回小时 保留2位小数
return Math.Round((timeEnd - timeStart- unionOfRanges.LongCount()) / 3600d, 2);
标签:c#,unionOfRanges,ranges,var,时间,区间,Enumerable,createtime 来源: https://www.cnblogs.com/youngharvard/p/14676328.html