Java: Как сохранить временную шкалу / расписание, полное или пустое местоположение от времени x до y (интервал)?
Краткая предыстория:
У меня есть приложение Java, которое используется, чтобы увидеть, когда определенные места (классные комнаты) используются или нет. Пользователь помещает идентификатор местоположения в окно поиска, и программа отображает любые соответствующие события (классы). Приложение будет отображать всю соответствующую информацию (имя класса, номер комнаты, имя профессора, день недели, время занятий), классы, которые находятся в сеансе (или скоро будут), имеют цветовую кодировку, так что вы можете сказать на -послушай, если что-нибудь появится. Данные поступают с html-страницы, с которой я работаю (у меня нет доступа к SQL).
Все на данный момент работает, я использую JavaSwing для пользовательского интерфейса. События хранятся как базовый объект, который я сделал для его хранения, единственная часть, которая имеет значение для моего вопроса, - это то, что он сохраняет в объектах Java Date время начала и окончания каждого события.
То, что я пытаюсь сделать сейчас, это добавить способ проверки и отображения промежутков между событиями (когда классная комната пуста). У меня есть все данные, которые мне нужны (все время начала и окончания), но я не могу придумать способ фактически кодировать программу, чтобы увидеть пробелы.
И если это не достаточно сложно: я хочу реализовать это как можно проще, не используя никаких дополнительных библиотек. Я не хочу воссоздавать колесо, но я бы скорее хэшировал код вручную, чем просто добавлял импорт и пару вызовов методов; Половина этого проекта - бросить вызов самому себе.
На данный момент я не ищу совета о том, как на самом деле отображать данные, а сейчас я просто пытаюсь логически упорядочить их в удобной форме. В итоге он будет отображаться в JTable, но я пока не работаю над этой реализацией.
Мой скребок вытаскивает из таблицы HTML что-то вроде<td id=time>10:00AM - 11:15AM</td>
и разбирает его на две строки10:00AM
а также11:15AM
, Они передаются с другими данными моему объекту курса.
Мой объект курса имеет набор DateFormat, поэтому он может интерпретировать поступающие строки в даты.
public class Course {
static DateFormat tf = new SimpleDateFormat("h:mma");
private String name;
private String room;
private String instructor;
private Date start;
private Date end;
private String days;
public Course(String n, String r, String in, String st, String ed, String d) throws ParseException{
name=n;
room=r;
instructor=in;
start=tf.parse(st);
end=tf.parse(ed);
days=d;
}
//...basic getters, setters, and a toString()
Идея состоит в том, что я установлю два раза, установив окно, в котором я хочу проверить наличие пробелов. Я хочу выбрать интервал, скажем, 15 минут, и найти все промежутки в 15 или более минут, в течение которых классная комната пуста, т.е.