我试图弄清楚如何识别自开始日期(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;
}
答案 0 :(得分:3)
将以下公式转换为代码,您就完成了:
x = 100 * (current date - start date) / (end date - start date)
此处,x
是已完成的百分比。
因为您计算了两个时间间隔的比率,所以间隔的单位无关紧要。因此,您可以在间隔中使用日期,分钟,秒或甚至毫秒。最后一个选择与java.util.Date#getTime()
的返回值很好地联系在一起。
最后,如果您使用的是Java 8及更高版本,那么请考虑放弃新的java.time
库的Joda时间。