![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| aktuba |
|
||||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 16 Всего: 38 |
Есть такая функция:
Вкратце - задача функции добавить определенное кол-во лет(dy), месяцев(dm), недель(dw), дней(dd), часов(dh) и минут(dmin) к переданной дате. Еще в программе есть такой фрагмент:
Задача этого фрагмента, проверить, попадает ли определенная дата и время в нужный диапазон. Все отлично работает, но "меня терзают смутные сомнения"... Пока записей мало и разница между проверяемой датой и диапазоном мала - все отлично, но в дальнейшем точно будет работать медленно. Например, если будет дата = 01.05.2007 с интервалом в 1 день (dd=1, все остальные параметры = 0), а диапазон равен 01.05.2057, то получается, что данная функция будет вызываться примерно 19000 раз. А если таких дат 100-200? А если не dd=1, а dmin? Короче, очень хотелось бы как-то оптимизировать это, но сам никак не могу придумать. Может кто что подскажет? -------------------- ![]() |
||||
|
|||||
| Snowy |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Или по умному то же самое:
Добавлено через 6 минут и 29 секунд Второй вариант выглядит умнее, но первый не требует подключения DateUtils. Добавлено через 12 минут и 40 секунд
Почему просто не проверить:
|
||||||||
|
|||||||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 16 Всего: 38 |
Смотри, предположим есть дата: 01.05.2006 13:00, для которой прописано какое-то событие, которое должно выполняться еженедельно, т.е. 01.05.2006, 08.05.2006, 15.05.2006 и т.д. Теперь мне надо проверить, попадает ли это событие в диапазон от сегодня до послезавтра... Теперь нормально объяснил? Другого пути пока не вижу =(((( P.S.: счас заменю функцию на второй твой вариант, но мне кажется это не сильно поможет =((( Может еще какие идеи есть? Это сообщение отредактировал(а) aktuba - 1.5.2007, 14:05 -------------------- ![]() |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |