![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
драсте подскажите как лучше програме хранить в памяти список выбраных дней недели
|
|
#2
|
||||
|
||||
|
Битовая маска в байте.
|
|
#3
|
|||
|
|||
|
о наконец вспомнил
надо попробывать через множества |
|
#4
|
||||
|
||||
|
Да не, через битмаску и надёжнее и компактнее
|
|
#5
|
|||
|
|||
|
Угу, только немного геморойнее.
А через множества, оно мож и не совсем оптимально, зато красиво и читабельно: Код:
type TSelectedDayOfWeek = (sdwMonday, sdwTuesday, sdwWenesday, sdwThirsday, sdwFriday, sdwSaturday, sdwSunday); TSetOfSelectedDayOfWeek = Set Of SelectedDayOfWeek; var Days : TSetOfSelectedDayOfWeek; begin Days := [sdwMonday, sdwSaturday, sdwSunday]; Days := Days + [sdwTuesday]; Days := Days - [sdwMonday]; end; |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
SKIPtr (28.03.2017)
| ||
|
#6
|
||||
|
||||
|
Цитата:
|
|
#7
|
|||
|
|||
|
Цитата:
сохранять через множество номера дня недели потому шо надо будет найти ближайщий выбраный день недели и получить его реальную дату |
|
#8
|
|||
|
|||
|
тогда в описание emun'а добавь значения, ну что бы "прибить" их:
Код:
type TSelectedDayOfWeek = (sdwMonday = 1, sdwTuesday = 2, sdwWenesday = 3, sdwThirsday = 4, sdwFriday = 5, sdwSaturday = 6, sdwSunday = 7); 1. Можно через Ord получить значение по типу 2. Совпадает с функцией DayOfWeek (или DayOfTheWeek - проверь по доке) из стандартного модуля DateUtils. Кстати, там таки куча полезных функций есть. Ну получит по текущему дню дату ближайшего из списка - вообше простейшая арифметика. типа Код:
NextDate := Now + (MinSelectedGreaterThen(DaytOfWeek(Now)) - DaytOfWeek(Now)); |
|
#9
|
|||
|
|||
|
подскажите а шо за функция MinSelectedGreaterThen
|
|
#10
|
|||
|
|||
|
А это тебе надо будет написать. Выбирает мин день в сете, который больше, чем указанный в параметре.
Мне казалось, что я достаточно прозрачно название функции придумал. |
|
#11
|
||||
|
||||
|
Цитата:
|
|
#12
|
|||
|
|||
|
Да, вроде, уже не совсем. Вроде как emun теперь до 256 значений поддерживает. А в этом случае set уже не на простой битовой маске строится...
|
|
#13
|
||||
|
||||
|
Цитата:
|
|
#14
|
|||
|
|||
|
Цитата:
|