2015-02-06 103 views
0

我有日期的对象数组:获取时间最接近当前时间

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

我用这个函数计算的当前时间,下一次阵列。

该地区是从早到晚订购。它是同一日期的时间。

任何想法?

回答

0

我解决了它:

  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将是最接近现在

0

我想你应该()之前未使用后()