Java 我不能数时间段

Java 我不能数时间段,java,Java,我有代码检查给定的A时间(以毫秒为单位)是否在给定的b时间段内 private static boolean isInTimeInterval(long time, int timePeriod) { long curTime = Calendar.getInstance().getTimeInMillis(); // time period is in hours, 1 hour is 3600000 ms; long startTime =

我有代码检查给定的A时间(以毫秒为单位)是否在给定的b时间段内

private static boolean isInTimeInterval(long time, int timePeriod) {

        long curTime = Calendar.getInstance().getTimeInMillis();
        // time period is in hours, 1 hour is 3600000 ms;
        long startTime = curTime - timePeriod * 3600000; 
        if (time >= startTime && time < curTime){
            return true;
        }
        return false;
    }
long difference = Calendar.getInstance().getTimeInMillis() - time;
long timeRange = timePeriod * 3600000;
return (0 <= difference && differance <= timeRange);

但是它不能正常工作,有什么问题吗?

为了简化问题,我建议您首先从结束时间中减去开始时间,检查是否为正,然后确定剩余的毫秒是否小于请求的时间段

private static boolean isInTimeInterval(long time, int timePeriod) {

        long curTime = Calendar.getInstance().getTimeInMillis();
        // time period is in hours, 1 hour is 3600000 ms;
        long startTime = curTime - timePeriod * 3600000; 
        if (time >= startTime && time < curTime){
            return true;
        }
        return false;
    }
long difference = Calendar.getInstance().getTimeInMillis() - time;
long timeRange = timePeriod * 3600000;
return (0 <= difference && differance <= timeRange);

因为这很可能会以一种您不期望的方式获取输入。首先,我会输入一些日志记录或至少一次性的println调试语句,以验证输入时间是否与我所认为的相同。

让我问你:怎么了?告诉我们您遇到的问题,我们会更容易提供帮助。它无法正常工作?当你把车开到车库修好的时候,你是说我的车坏了吗?@Alex我明白了,但为什么?他在解析贺龙、函数等方面有困难吗?他可以提供一些例子,说明这个东西失败了,因为到目前为止它看起来还不错。@Arno我能理解它不能正常工作,但我想:它应该做什么?它在做什么?当您使用调试器时,出现了什么问题,以及哪里出了问题?如果您不告诉我们问题是什么,我们如何知道问题?文件中的数据是什么样子的?它实际上是一个长值,还是一个需要解析然后转换为长值的时间戳?