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

C#中按每日特定时段(00:10至次日00:00)分组集合数据

解决方案

你的需求是把当天00:10:00到次日00:00:00的记录归为一组,而非自然的00:00-24:00区间,所以需要调整分组的判断逻辑:

  • 若时间戳的时间部分早于00:10:00,这条记录属于前一天的分组
  • 若时间戳的时间部分大于等于00:10:00,这条记录属于当前日期的分组

直接在GroupBy里生成对应分组键即可实现:

var batchGroupedByCustomPeriod = batch.GroupBy(value =>
{
    var timestamp = value.Timestamp;
    // 判断时间是否早于当天00:10
    if (timestamp.TimeOfDay < TimeSpan.FromMinutes(10))
    {
        // 属于前一天分组,日期减一天
        return timestamp.AddDays(-1).Date;
    }
    else
    {
        // 属于当天分组,取日期部分
        return timestamp.Date;
    }
});

分组后,每个组的键对应基准日期(比如2023.05.01),涵盖的记录范围就是2023.05.01 00:10:00到2023.05.02 00:00:00,完全匹配你的需求。

如果需要沿用原代码的匿名类型存储年月日,可将返回值替换为:

var groupDate = timestamp.TimeOfDay < TimeSpan.FromMinutes(10) 
    ? timestamp.AddDays(-1).Date 
    : timestamp.Date;

return new 
{ 
    year = groupDate.Year, 
    month = groupDate.Month, 
    day = groupDate.Day 
};

内容的提问来源于stack exchange,提问作者Wojciech Szabowicz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:52:07