C#如何简便计算距离午夜(次日零点)的剩余时间
优化实现方案
你的原有代码逻辑可正常运行,可通过DateTime自带的Date属性简化写法,该属性会自动返回对应时间的日期部分,时间固定为当日00:00:00,无需手动构造零点时间:
DateTime now = DateTime.Now; double remaining = (now.Date.AddDays(1) - now).TotalMilliseconds;
相关说明
- 目前.NET类库没有提供直接计算当日剩余毫秒的封装方法,上述写法就是原生接口下最精简的实现,和你原有代码的执行效率完全一致,仅优化了代码可读性,降低手动构造DateTime的出错概率
- 如果业务需要考虑时区、夏令时误差,可以改用UTC时间计算:
DateTime utcNow = DateTime.UtcNow; double remainingUtc = (utcNow.Date.AddDays(1) - utcNow).TotalMilliseconds;
内容的提问来源于stack exchange,提问作者BegDev
相关产品推荐
相关产品推荐

