Визуализация событий календаря. Алгоритм размещения событий с максимальной шириной

Мне нужна ваша помощь с алгоритмом (он будет разработан на стороне клиента с помощью javascript, но на самом деле это не имеет значения, меня в основном интересует сам алгоритм )размещения событий календаря таким образом, чтобы каждое поле событий имело максимум ширина. Пожалуйста, смотрите следующую картинку:

calendar events layout

Ось Y - время. Так что если "Тестовое событие" начинается в полдень (например )и больше с ним ничего не пересекается, оно занимает всю ширину 100%. «Еженедельный обзор» пересекается с «Акробатика YMCA» и «Анна/Амелия», но последние два не пересекаются, поэтому все они заполняются на 50%. Test3, Test4 и Test5 пересекаются, поэтому максимальная ширина составляет 33,3% для каждого. Но Test7 составляет 66%, так как Test3 исправлен на 33% (, см. выше ), поэтому он занимает все доступное пространство, что составляет 66%.

Мне нужен алгоритм, как это выложить.

Заранее спасибо

50
задан Alexey 3 July 2012 в 01:56
поделиться