我对计算时间感到非常困惑。我想设置2个变量:
并最后检查当前时间是否大于FutureTime将在进程中执行的时间
例如:
if(currentTime <= FutureTime)
{
do something
}
测验计划
有人可以推荐我怎么做吗?
答案 0 :(得分:4)
对于这种计算,总是很容易使用时间的毫秒重新反应。你可以使用System.currentTimeInMilis方法获得当前时间的精力。因此,使用它可以像其他数学比较一样轻松比较两个时间戳
因此,从当前时间开始,您可以通过添加间隔的mil来轻松获得未来时间..让当前时间为x
milis。所以你可以通过x+5*1000
milis获得5秒的未来时间
答案 1 :(得分:0)
检查循环中的时间的另一种方法是在单独的线程中运行您的任务并在需要时中断它 - 这也会更灵活:
Runnable yourTask = new Runnable() {
public void run() {
while (!Thread.interrupted()) {
//do something
}
}
};
Thread t = new Thread(yourTask);
t.start();
Runnable interruptingTask = new Runnable() {
public void run() { t.interrupt(); }
};
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.schedule(interruptingTask, 5, TimeUnit.SECONDS);