169 похожих чатов

Всем привет! никак не могу придумать хорошего решения, может подкинет

кто-нибудь идею/

Задача - построить линию расписания на день.
На входе массив с началом и концом уже запланированных мероприятий.
Т.е. например линия от 10:00 до 18:00. На входе [['11:30', '12:00'], ['14:30', '15:00']].

Можно легко расположить занятые временные промежутки абсолютом сверху, но мне нужна возможность кликать по свободным временным отрезкам.
Т.е. должно быть: свободный кусок, занятый кусок, свободный, занятый.

у меня в голове возникает только всякая дичь.
Типо проверить совпадает ли начало дня с началом первого пероприятия.
Если да, то рисуем занятый участок, если нет, то свободный от начала дня до начала занятого участка.
Дальше опять проверять, совпадает ли начало следующего занятого участка с концом предыдущего. И т.д.
Ну колхоз же.. Можно это как-то более элегантно сделать?))

4 ответов

6 просмотров

недавно читал статью, где дядька делал расписание конференций на гридах, хз подойдет или нет

Я делал похожую задачку. Но в моем случае весь день был поделён на отрезки. Я разделил отдельно весь день. На него наложил отрезки, кликабельные. Сверху слой с не рабочими часами. И сверху брони с абсолютным позиционированием. При клике на отрезки ещё сверял с занятыми бронями. Что бы подгонять ближайшую свободную минуту.

Те в бизнес логики я оперировал только минутами с начала дня. На вью минуты превращались в пиксели. Типа одна минута 4 пикселя. Это в будущем поможет масштабировать график и под телефоны и под телевизоры (что собственно уже заказчик начал использовать). Плюс каждая компания подбирает сама шаги для резво овация броней. А может и без

Периоды во входных данных пересекаются?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
22
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта