轮询时间到最近的一分钟...

  • 本文关键字:一分钟 最近 时间 c#
  • 更新时间 :
  • 英文 :


是否有一个简单的方法将DateTime四舍五入到最接近的分钟?即. .2011-08-11 16:58:20变成2011-08-11 16:59:00

我已经尝试了几种解决方案

dt.AddMinutes((60 - dt.Minute) % 10);

但这似乎增加了整整一分钟。

正如@ChristofWollenhaupt在评论部分提到的

舍入应该基于Ticks属性而不是Second。否则四舍五入的DateTime仍然有不同的毫秒值

如果是这种情况,则创建新的DateTime并根据刻度对分钟进行校正。

TimeSpan timeSpan = new TimeSpan(0, 0, 0, dt.Second, dt.Millisecond);
DateTime roundedDateTime = new DateTime(
dt.Year,
dt.Month,
dt.Day,
dt.Hour,
dt.Minute,
0,        //Second
0,        //Millisecond
dt.Kind
);
roundedDateTime.AddMinutes(timeSpan.Ticks > 0 ? 1 : 0);

相关内容

  • 没有找到相关文章