我有一个时间变量
long time = (new Date()).getTime();
我将如何对此执行if语句?例如
if (time is over 5 minute)
system.out.println("time is up")
else
system.out.println("OK TIME")
我想测试时间,看看如果变量初始化后已经过了一分钟,那么如果时间超过一定数量,则执行if语句。
答案 0 :(得分:2)
可能你正在检查变量“time”的值是否包含5分钟前的毫秒数。
long time = (new Date()).getTime();
long currentTime = System.currentTimeInMillis();
long fiveMinutesInMilliSeconds = 5 * 60 * 1000L;
if((time + fiveMinutesInMilliSeconds) <= currentTime )
System.out.println("Time's Up!);
else
system.out.println("OK TIME")
答案 1 :(得分:0)
要在几分钟内检查两个日期的差异,请使用:
Date dateBefore = new Date();
//some computing...
Date dateAfter = new Date();
long timeInMinutes = (dateAfter.getTime()/60000) - (dateBefore.getTime()/60000);
if (timeInMinutes > 5) {
//something
} else {
//something
}
如果您需要更精确的结果(例如某些诊断),您应该使用System.nanoTime()。
答案 2 :(得分:0)
类似的东西:
public static void main(String[] args) throws IOException, InterruptedException {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.MINUTE, 1);
System.out.println(new Date());
while(System.currentTimeMillis() < cal.getTimeInMillis()){
System.out.println("not" + new Date());
Thread.sleep(1000);
}
System.out.println("done");
}
答案 3 :(得分:0)
如果您获得两个日历实例,我认为您可以这样做:
Calendar variableInitialised = Calendar.getInstance();
之后,您将限制时间添加到实例
variableInitialised.add(Calendar.MINUTE, 5);
你改变了你的IF:
if(variableInitialised.after(Calendar.getInstance()))
答案 4 :(得分:0)
您需要使用另一个'startTime'变量来指示开始时间。 然后,您可以计算CurrentTime和StartTime之间的差异。 在'if'子句中使用这种差异。
// has to be the time in past
// Following constructor of Date is depricated.
// Use some other constructor. I added it for simplicity.
long startTime = new Date(2015, 3, 3).getTime();
long currentTime = new Date().getTime();
long timeDiff = currentTime - startTime;
long fiveMinutes = 300000; // 5 minutes in milliseconds
if(timeDiff > fiveMinutes){
// TODO
}