2011-09-24 87 views
3

我遇到了一個奇怪的問題。我試圖檢查當前時間是否大於powertimer。當我運行該方法時,即使powerup.getPowertimer() - System.currentTimeMillis()大於0,我通過打印結果測試if語句返回true。Java if語句currentTimeMillis,檢查是否已經過了特定的時間

this.powertimer = System.currentTimeMillis() + 10000; 
public long getPowertimer() { 
    return this.powertimer; 
} 

if ((powerup.getPowertimer() - System.currentTimeMillis()) > 0) { 
    System.out.println(powerup.getPowertimer() - System.currentTimeMillis()); 
    powerup.reversePower(player); 
    expired.add(powerup); 
} 

有誰知道如何解決這個問題?

回答

3

要檢查是否當前時間已 「通過的」 powertimer超時,你做

if (System.currentTimeMillis() > powerup.getPowertimer()) { 
    ... 
} 

請注意,您的線路:

if ((powerup.getPowertimer() - System.currentTimeMillis()) > 0) 

相當於

if (powerup.getPowertimer() > System.currentTimeMillis()) 
          ^
          | 
       wrong direction of inequality 
1

你有su以錯誤的方式繞行。這樣做:

if (System.currentTimeMillis() - powerup.getPowertimer() > 0) 

一定要記住這一點:

三角洲=最終 - 初始

感謝我的高中物理教師傑夫·鮑威爾因爲我在經常使用這個精緻的小我生活。

+0

哇我的愚蠢misstake。像需要休息一樣。 – warbio

相關問題