可能重复:
Java Timer
如何在Java中跟踪固定时间段内的剩余时间?
例如,我想每秒向用户显示此输出:
you have 50 seconds
you have 49 seconds //after 1 second
you have 48 seconds //after 2 seconds
等等。
答案 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");
}