我的代码中有一个属性,用户可以在其中输入HH:mm的时间跨度,例如
10:32
10:44
15:45
我想四舍五入到最近的15分钟,但我这里没有约会时间。我只需要和Timespan一起做
10:32 to 10:30
10:44 to 10:45
15:45 to 15:45
01:02 to 01:00
02:11 to 02:15
03:22 to 03:15
23:52 to 00:00
尝试了所有这些解决方案,但其中涉及Datetime
如何将时间四舍五入到最近的X分钟?
是否有一个简单的函数可以在C#中将DateTime舍入到最近的30分钟?
DotNet舍入日期时间到最近15分钟
我想你想要这样的东西:
public static class TimeSpanExtensions
{
public static TimeSpan RoundToNearestMinutes(this TimeSpan input, int minutes)
{
var totalMinutes = (int)(input + new TimeSpan(0, minutes/2, 0)).TotalMinutes;
return new TimeSpan(0, totalMinutes - totalMinutes % minutes, 0);
}
}
如果将15作为您选择的舍入间隔,则该函数将首先加7分钟,然后舍入到最接近的15分钟。这应该给您您想要的。
由于上面编写了扩展方法,因此可以像这样使用它:
var span1 = new TimeSpan(0, 10, 37, 00).RoundToNearestMinutes(15);
var span2 = new TimeSpan(0, 10, 38, 00).RoundToNearestMinutes(15);
第一个变为10:30,第二个变为10:45(根据需要)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句