2017-04-19 37 views
-2

即時嘗試計算我將如何確定自開始日期(auctionStart)開始經過一定時間(10%)的時間,並將其與當前日期和結束日期(aEnd)。如果在兩個日期之間已經過了10%的時間,則返回true

這是我到目前爲止的代碼,但即時通訊相當多的方法瞭解這一點。我一直在嘗試使用JodaTime。

private Date auctionStart; 
private Date aEnd; 

public Boolean tenPercentElapsed(){ 
    SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    String aucStartString = f.format(auctionStart); 
    Date aucStart = f.parse(aucStartString); 
    DateTime currentTime = new DateTime(); 
    DateTime startTime = new DateTime(aucStart); 

    int m = Minutes.minutesBetween(startTime, currentTime).getMinutes(); 
    double minutes = (double)m; 
    if(){ 
     return true; 
    } 

    return false; 
} 
+0

您的問題是什麼? – tnw

+4

是否有沒有使用'java.time' API的原因? –

+0

時間可以用毫秒錶示。以開始和結束之間的毫秒數(當前問題使用分鐘數;本質上相同)。這是總數。佔總數的10%。以毫秒爲單位開始 - 電流。比較。 – KevinO

回答

3

變換以下公式轉換成代碼,你就大功告成了:

x = 100 * (current date - start date)/(end date - start date) 

這裏,x是已完成的百分比。

因爲您正在計算兩個時間間隔的比率,所以間隔的單位並不重要。所以你可以在間隔中使用日期,分鐘,秒或甚至毫秒。最後的選擇與java.util.Date#getTime()的返回值很好地結合在一起。

最後,如果您使用的是Java 8及更高版本,那麼請考慮爲新的java.time庫丟棄Joda時間。

相關問題