2017-04-19 33 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时间。

相关问题