我正在尝试计算程序消耗的时间。但是下面显示的两种方法有什么区别?
System.currentTimeMillis() % 1000
System.currentTimeMillis() / 1000
答案 0 :(得分:0)
我假设您在几秒钟内除以1000就想要它?
无论如何,模数运算符%
不是你想要的,它通过第二个操作数为你提供除法的余数。
要获取某些代码的运行时,请在执行前获取当前时间,并在执行后获取。运行时将是两者之间的差异。
System timeBefore = System.currentTimeMillis();
//PUT CODE HERE
System timeAfter = System.currentTimeMillis();
System timeDelta = timeAfter = timeBefore;
System.out.println("Runtime was " + timeDelta + " millis"); //display milliseconds
System.out.println("Runtime was " + (timeDelta / 1000) + " seconds"); //display seconds
答案 1 :(得分:0)
你可能想尝试这样的事情:
public static void main(String[] args) throws InterruptedException{
long t1 = System.nanoTime();
Thread.sleep(3000L);//do your work here
long t2 = System.nanoTime();
long result = t2 - t1;
result = result / 1000000000;
System.out.println(result);
}
这会在几秒钟内给你时间......
输出:
3
答案 2 :(得分:-1)
两种方法的解释
System.currentTimeMillis()/
1000
/
是除法运算符。
它会返回System.currentTimeMillis()
除以1000
的结果。这通常用于将毫秒转换为秒。
System.currentTimeMillis()%
1000
%
是余数运算符。
它将返回除法后剩余的余数1000
(模数)。
Oracle提供了Java-Operators的完整列表。
标题中的问题示例
如果您希望从应用程序中获得总的正常运行时间,您可以轻松地从Java运行时接收它:
ManagementFactory.getRuntimeMXBean().getUptime()
这将以毫秒为单位返回程序的运行时。通过将其除以1000,您将获得程序运行的秒数。
<强>优势强>: