2014-03-27 127 views
0

我正在創建一個程序,每分鐘進行一次計算。我不知道如何有效地做到這一點,但是這是迄今爲止我已經寫了一些僞代碼:基於時間的Java計算

stockCalcTimerH = System.currentTimeMillis() - 1; 
    stockCalcTimerI = stockCalcTimerH; 
    stockCalcTimer = System.currentTimeMillis(); 

    if (stockCalcTimerI < stockCalcTimer) { 
     *do calcuations* 
    stockCalcTimerI + 60000; 

當我在屏幕上同時打印出的值,它出來,因爲這:

stockCalcTimerI = 1395951070595 stockCalcTimer = 1395951010596

只減去的數量,不加60000毫秒... 我有點新到Java,但任何反饋幫助。

感謝您的閱讀!

+0

我說它工作在第一位... – nef

+1

你是什麼意思'stockCalcTimerI + 60000;'?如果你的意思是'stockCalcTimerI + = 60000;'然後確定永遠不會增加60000毫秒。 –

回答

2
stockCalcTimerI + 60000; 

新值永遠不會分配給變量。

修改成:

stockCalcTimerI += 60000; 

這是一樣的

stockCalcTimerI = stockCalcTimerI + 60000; 
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);