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

C#检查DateTime的最佳方式:如何优化9:30至16:00的时间判断代码

时间判断代码优化方案

原代码存在一个潜在问题:多次调用DateTime.Now可能因时间跳变(比如接近9:30时)导致判断逻辑出现误差。以下是几种更简洁、可靠的优化实现:

  • 方法一:转换为当日总分钟数比较
    将时间转换为当日的总分钟数,逻辑直观且仅需一次获取当前时间:

    static bool Run()
    {
        var now = DateTime.Now;
        int totalMinutes = now.Hour * 60 + now.Minute;
        // 9:30对应570分钟,16:00对应960分钟
        return totalMinutes > 570 && totalMinutes < 960;
    }
    
  • 方法二:构造时间区间直接比较
    创建当日的9:30和16:00两个时间节点,直接判断当前时间是否处于区间内:

    static bool Run()
    {
        var now = DateTime.Now;
        var startTime = new DateTime(now.Year, now.Month, now.Day, 9, 30, 0);
        var endTime = new DateTime(now.Year, now.Month, now.Day, 16, 0, 0);
        return now > startTime && now < endTime;
    }
    
  • 方法三:使用TimeSpan简化写法
    借助TimeSpan仅提取时间部分进行比较,代码更简洁:

    static bool Run()
    {
        var nowTime = DateTime.Now.TimeOfDay;
        var startTime = new TimeSpan(9, 30, 0);
        var endTime = new TimeSpan(16, 0, 0);
        return nowTime > startTime && nowTime < endTime;
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:12:14