我的代码中有一个属性,用户可以在HH:mm中输入一个时间跨度
10:32
10:44
15:45
Run Code Online (Sandbox Code Playgroud)
我想在我的房产到最近的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
Run Code Online (Sandbox Code Playgroud)
尝试了所有这些解决方案,但它们涉及Datetime
如何将时间向上舍入到最接近的X分钟?
是否有一个简单的函数可以将日期时间向下舍入到最接近的30分钟,在C#中?
DotNet Roundoff日期时间持续15分钟
Bal*_*ick 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);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您传入15作为所选的舍入间隔,则该函数将首先添加7分钟,然后向下舍入到最接近的15分钟.这应该给你你想要的.
因为上面写的是扩展方法,你可以像这样使用它:
var span1 = new TimeSpan(0, 10, 37, 00).RoundToNearestMinutes(15);
var span2 = new TimeSpan(0, 10, 38, 00).RoundToNearestMinutes(15);
Run Code Online (Sandbox Code Playgroud)
第一个变为10:30,第二个变为10:45(根据需要).
| 归档时间: |
|
| 查看次数: |
5784 次 |
| 最近记录: |