2015-02-06 102 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

我想你應該()之前未使用後()