首页 > 解决方案 > 检查未来时间(纪元毫秒)是否在当前时间(纪元毫秒)的 3 小时内

问题描述

我试图比较两次以查看未来时间是否在当前时间的下一个 3 小时内。

下面是我尝试过的一些代码,我尝试将未来时间减去 10,800,000,如果当前时间大于或等于差值,它应该返回 true。我不知道 10,800,000 是否正确,因为有时它现在应该返回真/假。

  public static Boolean checkIfWithin3Hours(long startTime, long currentTime){
           if(currentTime >= startTime - (10800000)) {
            return true;
        }
        return false;
  }

如果以毫秒为单位的纪元时间在以毫秒为单位的未来时间的 3 小时内,我希望它返回 true。

标签: java

解决方案


1000 milliseconds/second
60 seconds/minute
60 minutes/hour
3 hours

将它们相乘,得到 10,800,000 毫秒。第一步,你的号码是正确的。

下一步,计算数字是否在范围内:

如果 timeTesting 在 3 小时后的范围内,则 timeNow <= timeTesting <= timeNow + 10,800,000 ms。

第二步,您的范围测试不正确。

用以下方法修复它:

public static Boolean checkIfWithin3Hours(long startTime, long currentTime){
    return startTime <= currentTime && currentTime <= startTime + 10800000;
} 

推荐阅读