获取时间最接近当前时间
问题描述:
我有日期的对象数组:获取时间最接近当前时间
Date[] vakitlarDate;
我想要得到的关闭时间从该区域当前时间。
@Override
public void run() {
// nextTime will be calculated here, which is the next time
nextTime = new Date();
Date now = new Date();
try {
Date[] vakitlarDate = vakitler.getVakitlarAsDateArray();
boolean morningIsNextTime = true;
// For loop to get next time of now
for (int i = 0; i < Vakitler.NUM_OF_VAKITLER; i++) {
if (now.after(vakitlarDate[i])) {
continue;
} else {
nextTime = vakitlarDate[i];
currentTimeIndex = i;
morningIsNextTime = false;
break;
}
}
if (morningIsNextTime) {
// Next time is morning of next day
// TODO: add one day here to get next day morning
nextTime = vakitlarDate[0];
}
} catch (ParseException e) {
e.printStackTrace();
}
我只是无法得到的最接近时间,现在从:
我可以从阵列上方是vakitlerDate
我用这个函数计算的当前时间,下一次阵列。
该地区是从早到晚订购。它是同一日期的时间。
任何想法?
答
我解决了它:
List<Date> vakitlerDateList = getVakitlerAsListOfDate();
Date closest = Collections.min(vakitlerDateList, new Comparator<Date>() {
public int compare(Date d1, Date d2) {
long diff1 = Math.abs(d1.getTime() - now);
long diff2 = Math.abs(d2.getTime() - now);
return diff1 < diff2 ? -1 : 1;
}
});
closest
将是最接近现在
答
我想你应该()之前未使用后()