确定当前时间在小时之间

Kri*_*s B -6 java

我觉得这真的很容易,但我的大脑由于某种原因不工作。我有一个功能,用户可以选择运行的时间段(以小时为单位)。我需要检查当前时间是否在这些时间之间:

int currentHour = LocalDateTime.now().getHour(); // 21 (9pm)

int startHour = 20; // (8pm)
int endHour = 1; // (1am)

if (currentHour >= startHour && currentHour < endHour)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

kni*_*ttl 5

您需要考虑涵盖午夜的范围,例如

if (endHour < startHour) {
  endHour += 24;
}
if (currentHour < startHour) {
  currentHour += 24;
}

// now check if currentHour between start and end
Run Code Online (Sandbox Code Playgroud)

但请注意,它LocalDateTime#getHour()已经返回 0 到 23 之间的值。所以 9 表示上午 9 点,21 表示晚上 9 点。