Wizualizacja wydarzeń w kalendarzu. Algorytm układania zdarzeń o maksymalnej szerokości

Potrzebuję twojej pomocy z algorytmem (będzie on rozwijany po stronie klienta za pomocą javascript, ale tak naprawdę nie ma to znaczenia, interesuje mnie głównie sam algorytm) układając wydarzenia w kalendarzu, tak aby każde pole zdarzeń miało maksymalną szerokość. Proszę zobaczyć następujące zdjęcie:

Oś Y to czas. Jeśli więc „zdarzenie testowe” rozpocznie się w południe (na przykład) i nic więcej się z nim nie przecina, zajmuje całą szerokość 100%. „Przegląd tygodniowy” przecina się z „Tumbling YMCA” i „Anna / Amelia”, ale dwa ostatnie nie krzyżują się, więc wszystkie wypełniają 50%. Test3, Test4 i Test5 przecinają się, więc maksymalna szerokość wynosi 33,3% dla każdego. Ale Test7 wynosi 66%, ponieważ Test3 ma 33% poprawek (patrz wyżej), więc zajmuje całą dostępną przestrzeń, która wynosi 66%.

Potrzebuję algorytmu, jak to wyjaśnić.

Z góry dziękuję

questionAnswers(2)

yourAnswerToTheQuestion