You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#如何计算两个DateTime的平均间隔并按日期分组输出独立列表

实现方案

你可以通过GroupBy按startDate的日期维度分组,再对每个分组单独计算平均间隔即可,实现代码如下:

  1. (可选)先定义输出结果的强类型模型:
public class DailyAverageResult
{
    // 分组对应的日期
    public DateTime Date { get; set; }
    // 当日平均间隔,单位为毫秒
    public double AverageTime { get; set; }
}
  1. 核心分组计算逻辑:
if (noNulls.Any())
{
    var dailyAverageList = noNulls
        // 按startDate的日期部分分组,Date属性会自动清零时分秒,实现按天分组
        .GroupBy(data => data.startDate.Date)
        // 对每个分组计算平均值,投影为目标结构
        .Select(group => new DailyAverageResult
        {
            Date = group.Key,
            AverageTime = group.Average(item => (item.endDate.Value - item.startDate).TotalMilliseconds)
        })
        // 可按日期升序排序,和你示例的输出顺序一致
        .OrderBy(res => res.Date)
        .ToList();
}

如果不需要强类型结果,也可以直接投影为匿名类,省略第一步的模型定义即可。

内容的提问来源于stack exchange,提问作者Rahul Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 18:15:11