用Java记录时间

时间:2011-03-27 17:41:26

标签: java time

  

可能重复:
  Java Timer

如何在Java中跟踪固定时间段内的剩余时间?

例如,我想每秒向用户显示此输出:

you have 50 seconds
you have 49 seconds //after 1 second
you have 48 seconds //after 2 seconds

等等。

1 个答案:

答案 0 :(得分:4)

您可以使用Thread.sleep作为对用户响应进行计时的机制,但我不会依赖它来计算倒计时的准确性。 Thread.sleep在1000毫秒之后再次激活线程,但在线程实际再次运行之前可能需要一些额外的时间。

这个怎么样:

    int remainingTime = 50;
    long timeout = System.currentTimeMillis() + (remainingTime * 1000);
    while (System.currentTimeMillis() < timeout) {
        Thread.sleep(1000);
        System.out.println("You have : " + (timeout - System.currentTimeMillis()) / 1000 + " seconds left");
    }