0

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

例如:

如果时间是下午 12:30,它仍然会转到上午,如果是下午 12:31,它现在会转到下午。

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 仍然进入上午。

先感谢您

4

4 回答 4

3

不要转换为字符串,而是直接使用 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
于 2016-01-26T14:35:50.323 回答
0

抱歉,当我不理解您的问题时,但 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 中测试这个

于 2016-01-26T14:38:19.337 回答
0

这将允许您定义自己的“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  
于 2016-01-26T15:40:51.347 回答
-1

也许这种方式更有效

MsgBox(DateTime.Now.AddMinutes(-30).ToString("tt"))
于 2016-01-26T14:47:45.077 回答