【发布时间】:2014-06-03 02:33:33
【问题描述】:
我的代码中有一个属性,用户可以在其中输入 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
尝试了所有这些解决方案,但其中涉及日期时间
How can I round up the time to the nearest X minutes?
Is there a simple function for rounding a DateTime down to the nearest 30 minutes, in C#?
DotNet Roundoff datetime to last 15 minutes
【问题讨论】:
-
TimeSpan是一个不可变结构,因此您无法更改已创建的实例,但您可以通过提取其部分从现有的TimeSpan创建一个新的TimeSpan。TimeSpan公开Minutes属性 - 提取此值,四舍五入到最接近的一刻钟(确保如果四舍五入到第 60 分钟,则增加Hours,如果四舍五入到第 24 小时,则增加 @ 987654331@),并创建TimeSpan的新实例。
标签: c#