我正在创建一个每分钟进行一次计算的程序。我不知道如何有效地做到这一点,但这是我到目前为止编写的一些伪代码:
stockCalcTimerH = System.currentTimeMillis() - 1;
stockCalcTimerI = stockCalcTimerH;
stockCalcTimer = System.currentTimeMillis();
if (stockCalcTimerI < stockCalcTimer) {
*do calcuations*
stockCalcTimerI + 60000;
当我在屏幕上打印出两个值时,它出现如下:
stockCalcTimerI = 1395951070595 stockCalcTimer = 1395951010596
它只减去数字,并且不会增加60000毫秒...... 我是Java的新手,但任何反馈都有帮助。
感谢您阅读!!
答案 0 :(得分:2)
stockCalcTimerI + 60000;
新值永远不会分配给变量。
将其更改为:
stockCalcTimerI += 60000;
与
相同stockCalcTimerI = stockCalcTimerI + 60000;
答案 1 :(得分:0)
您可以使用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);