[英]Time based calculation in Java
I am creating a program that makes a calculation every minute. 我正在创建一个每分钟进行计算的程序。 I don't know exactly how to do this efficiently, but this is some pseudo code I have written so far:
我不确切知道如何有效地执行此操作,但这是我到目前为止编写的一些伪代码:
stockCalcTimerH = System.currentTimeMillis() - 1;
stockCalcTimerI = stockCalcTimerH;
stockCalcTimer = System.currentTimeMillis();
if (stockCalcTimerI < stockCalcTimer) {
*do calcuations*
stockCalcTimerI + 60000;
When I print both values out on the screen, it comes out as this: 当我在屏幕上打印出两个值时,它出现如下:
stockCalcTimerI = 1395951070595 stockCalcTimer = 1395951010596 stockCalcTimerI = 1395951070595 stockCalcTimer = 1395951010596
It only subtracts the number, and doesn't add the 60000 milliseconds... I'm kind of new to Java, but any feedback helps. 它只减去数字,并没有添加60000毫秒...我对Java有点新意,但任何反馈都有帮助。
Thanks for reading!! 谢谢阅读!!
stockCalcTimerI + 60000;
The new value never gets assigned to a variable. 新值永远不会分配给变量。
Change that to: 改为:
stockCalcTimerI += 60000;
Which is the same as 哪个是一样的
stockCalcTimerI = stockCalcTimerI + 60000;
You can use java.util.Timer
class to schedule runs. 您可以使用
java.util.Timer
类来计划运行。
TimerTask task = new TimerTask() {
@Override public void run() {
// do calculations
}
};
int delay = 0; // no delay, execute immediately
int interval = 60*1000; // every minute
new Timer().scheduleAtFixedRate(task, delay, interval);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.