如果两个日期之间已经过了10%的时间,则返回true

时间:2017-04-19 15:07:31

标签: java

我试图弄清楚如何识别自开始日期(auctionStart)以来已经过了一定时间(10%),并将其与当前日期和结束日期(aEnd)进行比较。

这是我到目前为止的代码,但我还有很多方法可以解决这个问题。我一直在尝试使用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;
}

1 个答案:

答案 0 :(得分:3)

将以下公式转换为代码,您就完成了:

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

此处,x是已完成的百分比。

因为您计算了两个时间间隔的比率,所以间隔的单位无关紧要。因此,您可以在间隔中使用日期,分钟,秒或甚至毫秒。最后一个选择与java.util.Date#getTime()的返回值很好地联系在一起。

最后,如果您使用的是Java 8及更高版本,那么请考虑放弃新的java.time库的Joda时间。