根据时间过去设定条件

时间:2014-01-16 19:29:05

标签: java if-statement time while-loop

我正在制作这段代码,我需要根据时间过去执行功能。

所以说一个随机的例子我想测量时间,以毫秒为单位,最多10秒,而这正在发生,它会打印你好。在此过程中,如果它达到6秒,我希望它打印出再见2秒,然后再继续打印你好再过2秒直到它达到10秒。

我认为这将使用if语句和while循环完成,但无法成功完成。

我一直在使用currentTimeMillis()并且我更愿意使用该选项来衡量时间,但一般来说,我将如何以这种方式执行上述操作?这个例子是愚蠢的,但我真正想要做的是类似的,所以上面会这样做。

谢谢你们。

编辑:根据要求,这是我为上面的例子尝试过的

    long x = System.currentTimeMillis();

    while(System.currentTimeMillis() - x < 10000)
    {
        System.out.println("hello");

        if(System.currentTimeMillis() - x == 6000)
        {
            System.out.println("goodbye");
            if(System.currentTimeMillis() - x > 8000)
            {
                System.out.println("hello");
            }
        }

    }

1 个答案:

答案 0 :(得分:2)

只记录一个开始时间,然后执行每个循环,直到当前时间达到该开始时间加上任何阈值。类似的东西:

long startTime = System.currentTimeMillis();
long tenSecondsFromStart = startTime + 10*1000;
long eightSecondsFromStart = startTime + 8*1000;
long sixSecondsFromStart = startTime + 6*1000;


while(System.currentTimeMillis() < sixSecondsFromStart){
   System.out.println("Hello");
}

while(System.currentTimeMillis() < eightSecondsFromStart){
   System.out.println("Goodbye");
}

while(System.currentTimeMillis() < tenSecondsFromStart){
   System.out.println("Hello again");
}