【问题标题】:Convert Time Stamp to half hour [closed]将时间戳转换为半小时 [关闭]
【发布时间】:2013-02-25 08:07:06
【问题描述】:

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

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

【问题讨论】:

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

标签: vb.net


【解决方案1】:

你可以使用这个方法:

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

【讨论】:

    【解决方案2】:

    看看这个答案how to round time 这是一个 javascript 示例,但使用 vb.net 应该也是如此。

    【讨论】:

      猜你喜欢
      • 2014-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-08
      • 1970-01-01
      • 2015-11-06
      • 1970-01-01
      • 2013-01-04
      相关资源
      最近更新 更多