Диапазон дат в диапазоне дат

На самом деле это задание показалось мне очень простым, но я немного застрял и был бы благодарен за некоторые подсказки: D

У меня есть несколько событий с начальным и конечным временем - и я хотел бы создать таблицу с календарными неделями.

Поэтому я написал метод для проверки, если событие в течение этой недели, чтобы покрасить его так:

private boolean inWeek(Date date, Entry pe) {
    return ((pe.getStartsAt().after(Util.firstDayOfWeek(date)) || pe.getStartsAt().equals(Util.firstDayOfWeek(date)))
     && (pe.getEndsAt().before(Util.lastDayOfWeek(date)) || pe.getEndsAt().equals(Util.lastDayOfWeek(date))));
}

Этот случай был в порядке, если события продолжаются одну неделю. но что, если мероприятие начинается до этой недели или заканчивается после этой недели или даже длится несколько недель?

это стало очень сложным, и мое текущее решение было таким:

private boolean inWeek(Date date, Entry pe) {

    return  (  pe.getStartsAt().after(Util.firstDayOfWeek(date)) &&  pe.getEndsAt().after(Util.firstDayOfWeek(date)) && pe.getEndsAt().before(Util.lastDayOfWeek(date))    ) 
    ||      (  pe.getStartsAt().before(Util.lastDayOfWeek(date)) &&  pe.getStartsAt().after(Util.firstDayOfWeek(date)) &&  pe.getEndsAt().after(Util.lastDayOfWeek(date))  )
    ||      (  pe.getStartsAt().after(Util.firstDayOfWeek(date)) &&  pe.getEndsAt().before(Util.lastDayOfWeek(date))  )
    ||      (  pe.getStartsAt().before(Util.firstDayOfWeek(date)) && pe.getEndsAt().after(Util.lastDayOfWeek(date)) );

}

но это все еще не показывает правильную окраску в некоторых клетках. У кого-нибудь есть намеки на меня?

(... не предлагая йода раз ^^)

Ответы на вопрос(4)

Ваш ответ на вопрос