Vb.net 将时间戳转换为半小时

Vb.net 将时间戳转换为半小时,vb.net,Vb.net,我正在编写一个函数,使用VisualStudio2010将时间转换为最接近的半小时。 例如,15:23到15:30,如果15:05,它将转换为15:00 有人有想法吗?提前感谢。查看此答案 这是一个javascript示例,但在vb.net中也应该可以这样做。您可以使用以下方法: Public Enum eRoundingDirection up down nearest End Enum Public Shared Function RoundDateTime(dt

我正在编写一个函数,使用VisualStudio2010将时间转换为最接近的半小时。 例如,15:23到15:30,如果15:05,它将转换为15:00

有人有想法吗?提前感谢。

查看此答案
这是一个javascript示例,但在vb.net中也应该可以这样做。

您可以使用以下方法:

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#)时

您当前保存时间戳的数据类型是什么?