Мне нужна ваша помощь с помощью алгоритма (он будет разработан на стороне клиента с помощью javascript, но на самом деле это не имеет особого значения, меня больше всего интересует сам алгоритм), откладывая события календаря, чтобы каждое поле событий имело максимальную ширину, Пожалуйста, просмотрите следующее изображение:
Ось Y - это время. Поэтому, если "тестовое событие" начинается в полдень (например) и больше не пересекается с ним, оно занимает всю 100% ширину. "Еженедельный обзор" пересекается с "Tumbling YMCA" и "Anna/Amelia", но последние два не пересекаются, поэтому они все заполняют 50%. Test3, Test4 и Test5 все пересекаются, поэтому максимальная ширина составляет 33,3% для каждого. Но Test7 составляет 66%, поскольку Test3 зафиксирован на 33% (см. Выше), поэтому он занимает все свободное пространство, что составляет 66%.
Мне нужен алгоритм, как это вынести.
Заранее спасибо