2011-01-05 2 views
0

i hav ниже записей времени Хранится в массиве.вычислить количество записей за выбранный период времени с помощью java

8.10.22 AM 
8.20.35 AM 
8.56.46 AM 
8.44.39 AM 

Так я хочу, как много записей в 8:00 утра в 9:00 утра период времени. как я могу это сделать с помощью java? Вот мой код ...

BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("c:/sample.csv") 
         while (reader.ready()) { 
       String line = reader.readLine(); 
       String[] values = line.split(","); 
       String ti=values[5]; 
    DateFormat dateformat = new SimpleDateFormat("hh:mm:ss"); 
    Date date = dateformat.parse(ti); 
      } 
+0

В каком формате у вас есть? Что-то вроде объекта Joda Time «LocalTime» будет идеальным ... –

+0

DateFormat dateformat = new SimpleDateFormat («hh: mm: ss»); – Chamal

ответ

1

Вы можете использовать методы дат API before и after, чтобы проверить, соответствует ли Date определенному временному диапазону. Если это так, увеличьте счетчик.

+0

Здесь я показываю свой код. может помочь мне решить эту проблему. – Chamal

0

Прокрутите массив и подсчитайте количество совпадений.

0

Упорядочены ли они по времени? Если нет, я бы использовал структуру, в которой они могут быть заказаны, если это возможно. Когда вы найдете время, превышающее окно, которое вы ищете, вы можете остановить поиск. В зависимости от размера структуры это может сэкономить много времени.

0

Цитирование через массив может быть не лучшим образом. Если даты заказаны, вы можете выполнить двоичный поиск, чтобы получить позицию первой даты до начала и после окончания и рассчитать количество дат между ними.

Смежные вопросы