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

C# 如何生成间隔30分钟、首项为当前时间后1~1.5小时的时间字符串列表

C# 间隔30分钟时间列表生成实现

调整后完整代码

public static List<string> GetAdjustedTimeList(int count = 48)
{
    List<string> timeList = new List<string>();
    DateTime now = DateTime.Now;
    // 计算当前时间+1小时后的基准节点
    DateTime baseTime = now.AddHours(1);
    // 向上对齐到最近的30分钟整时刻,确保落在1~1.5小时区间内
    int halfHourMark = (int)Math.Ceiling(baseTime.Minute / 30.0) * 30;
    DateTime startTime = baseTime.Date.AddHours(baseTime.Hour).AddMinutes(halfHourMark);
    
    // 生成指定数量的间隔30分钟时间字符串
    for (int i = 0; i < count; i++)
    {
        // 若需要24小时制格式,将hh:mm改为HH:mm即可
        timeList.Add(startTime.AddMinutes(30 * i).ToString("hh:mm"));
    }

    return timeList;
}

核心逻辑说明

  • 首先取当前时间叠加1小时得到基准时间,此时向上对齐到最近的30分钟整点,最大偏差不会超过30分钟,刚好满足「第一个值在当前时间后1小时~1小时30分区间」的要求
  • 对齐规则:如果基准时间的分钟数在029分,对齐到当前小时的30分;如果在3059分,对齐到下一小时的0分,完全符合区间要求
  • 默认生成48个时间点(覆盖全天24小时),可通过传入count参数自定义生成数量,跨天场景会自动处理日期进位

可选优化

如果需要避免跨天产生的时间歧义,可以修改ToString的格式为yyyy-MM-dd HH:mm,输出带日期的完整时间字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:24:01