Для начала я буду отталкиваться от того, что это у Вас какой-то журнал и все записи идут по возрастанию времени. Для простоты я полагаю что эти записи у Вас лежат в массиве.
Решение в лоб - организовать перебор. По шагам:
- Берем элемент N
- Проверяем существует ли элемент N-1(обработка первого элемента)
- Берете dataTime элемента N и вычитайте из него 15 минут(переменная time_minus)
- Берем dataTime элемента N-1 и сравниваем с time_minus. Если он меньше - ставите некий флаг, пусть semi_result_minus, в истину
- Проверяем существует ли элемент N+1(обработка последнего элемента)
- Берете dataTime элемента N и прибавляйте к нему 15 минут(переменная time_plus)
- Берем dataTime элемента N+1 и сравниваем с time_plus. Если он меньше - ставите некий флаг, пусть semi_result_plus, в истину
- Если обе переменные semi_result_minus и semi_result_plus имеют истинное значение - текущий элемент N соответствует Вашим критериям, значит включайте его в результат
Вам отдельно нужно будет подумать как быть, если Вы работайте с первым и последним элементом, т.к. в этом случае одна из Ваших semi_ переменных точно будет иметь ложное значение.