如何将时间四舍五入到最接近的 X 分钟? [英] How can I round up the time to the nearest X minutes?
本文介绍了如何将时间四舍五入到最接近的 X 分钟?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否有一个简单的函数可以将 UP DateTime
舍入到最接近的 15 分钟?
Is there a simple function for rounding UP a DateTime
to the nearest 15 minutes?
例如
2011-08-11 16:59
变成 2011-08-11 17:00
2011-08-11 17:00
保持为 2011-08-11 17:00
2011-08-11 17:01
变成 2011-08-11 17:15
推荐答案
DateTime RoundUp(DateTime dt, TimeSpan d)
{
return new DateTime((dt.Ticks + d.Ticks - 1) / d.Ticks * d.Ticks, dt.Kind);
}
示例:
var dt1 = RoundUp(DateTime.Parse("2011-08-11 16:59"), TimeSpan.FromMinutes(15));
// dt1 == {11/08/2011 17:00:00}
var dt2 = RoundUp(DateTime.Parse("2011-08-11 17:00"), TimeSpan.FromMinutes(15));
// dt2 == {11/08/2011 17:00:00}
var dt3 = RoundUp(DateTime.Parse("2011-08-11 17:01"), TimeSpan.FromMinutes(15));
// dt3 == {11/08/2011 17:15:00}
这篇关于如何将时间四舍五入到最接近的 X 分钟?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文