我正在编写一个函数,使用 Visual Studio 2010 将时间转换为最接近的半小时。例如,15:23 到 15:30,如果是 15:05,它将转换为 15:00。
有人有想法吗?提前致谢。
我正在编写一个函数,使用 Visual Studio 2010 将时间转换为最接近的半小时。例如,15:23 到 15:30,如果是 15:05,它将转换为 15:00。
有人有想法吗?提前致谢。
您可以使用此方法:
Public Enum eRoundingDirection
up
down
nearest
End Enum
Public Shared Function RoundDateTime(dt As DateTime, minutes As Integer, direction As eRoundingDirection) As DateTime
Dim t As TimeSpan
Select Case direction
Case eRoundingDirection.up
t = (dt.Subtract(DateTime.MinValue)).Add(New TimeSpan(0, minutes, 0))
Case eRoundingDirection.down
t = (dt.Subtract(DateTime.MinValue))
Case Else
t = (dt.Subtract(DateTime.MinValue)).Add(New TimeSpan(0, minutes \ 2, 0))
End Select
Return DateTime.MinValue.Add(New TimeSpan(0, (CInt(t.TotalMinutes) \ minutes) * minutes, 0))
End Function
将当前时间四舍五入到最接近的半小时:
Dim rounded = RoundDateTime(Date.Now, 30, eRoundingDirection.nearest):
最初发现(在 C# 中)here
查看这个答案如何舍入时间 这是一个javascript示例,但vb.net应该也可以。