将 DateTime 舍入到最近的时间增量
在许多编程场景中,有必要将 DateTime 值舍入到最接近的特定时间增量。例如,一个常见的要求是四舍五入到最接近的 15 分钟,以符合业务日程限制。
为了满足这一需求,可以使用一个名为 RoundUp 的简单而有效的函数。它需要两个参数:一个 DateTime 值和一个表示所需增量的 TimeSpan。
函数实现:
public static DateTime RoundUp(DateTime dt, TimeSpan d) { return new DateTime((dt.Ticks + d.Ticks - 1) / d.Ticks * d.Ticks, dt.Kind); }
用法:
以下代码片段演示了如何将 RoundUp 函数应用于各种 DateTime 值,增量为15 分钟:
// Round up to nearest 15-minute increment var dt1 = RoundUp(DateTime.Parse("2011-08-11 16:59"), TimeSpan.FromMinutes(15)); // Output: {11/08/2011 17:00:00} var dt2 = RoundUp(DateTime.Parse("2011-08-11 17:00"), TimeSpan.FromMinutes(15)); // Output: {11/08/2011 17:00:00} var dt3 = RoundUp(DateTime.Parse("2011-08-11 17:01"), TimeSpan.FromMinutes(15)); // Output: {11/08/2011 17:15:00}
在此示例中:
以上是在 C# 中如何将日期时间四舍五入到最接近的时间增量?的详细内容。更多信息请关注PHP中文网其他相关文章!