【问题标题】:how to know am or pm in vbvb中如何知道上午或下午
【发布时间】:2016-01-26 14:29:11
【问题描述】:

我正在做我的活动 dtr 系统,我想知道如何确定它是上午还是下午?上午 7 点 - 下午 12:30 应该继续上午,下午 1 点 - 下午 5 点将转到下午。

例如:

如果时间是 12:30 pm,它仍然是 am,如果是 12:31 pm,它会现在到 pm。

Dim hour As Date = TimeOfDay.ToString("hh:mm")
    If hour <= "12:30" Then
        isTimeAM_Exist() ' will go to am
    Else
        isTimePM_Exist() ' will go to pm
    End If

在我的代码中,下午 4:00 仍然进入上午。

提前谢谢你

【问题讨论】:

  • 开启 Option Strict。 Dim hour As Date = TimeOfDay.ToString("hh:mm") 您不能将字符串分配(或比较)给 DateTime

标签: vb.net time timeofday


【解决方案1】:

直接使用 DateTime 结构,而不是转换为字符串,并将其与正确的起始值进行比较

Dim now = Date.Now
If now < New DateTime(now.Year, now.Month, now.Day, 12, 00, 0) Then
    'It's currently AM
Else
    'It's currently PM
End If

【讨论】:

    【解决方案2】:

    抱歉,我不明白您的问题,但 TimeOfDay 有以下信息:

        Dim hour As Date = TimeOfDay
        If hour.Hour >= 12 Then
            ' do whatever you like to do on afternoon
        Else
            ' time to wake up
        End If
    

    必须先在我的 ide 中对此进行测试

    【讨论】:

      【解决方案3】:

      这将允许您定义自己的“AM”和“PM”:

      ' FormatDateTime(Now(), 4) gives 24-hour format (hh:mm)
      If Hour(FormatDateTime(Now(), 4)) + Minute(FormatDateTime(Now(), 4))/60 <= 12.5 Then
          ' Is AM
      Else
          ' Is PM
      End If  
      

      【讨论】:

        【解决方案4】:

        也许这种方式更有效

        MsgBox(DateTime.Now.AddMinutes(-30).ToString("tt"))
        

        【讨论】:

          猜你喜欢
          • 2013-06-04
          • 2012-03-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多