| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Оптимизация функции |
| Автор: aktuba 1.5.2007, 13:16 | ||||
Есть такая функция:
Вкратце - задача функции добавить определенное кол-во лет(dy), месяцев(dm), недель(dw), дней(dd), часов(dh) и минут(dmin) к переданной дате. Еще в программе есть такой фрагмент:
Задача этого фрагмента, проверить, попадает ли определенная дата и время в нужный диапазон. Все отлично работает, но "меня терзают смутные сомнения"... Пока записей мало и разница между проверяемой датой и диапазоном мала - все отлично, но в дальнейшем точно будет работать медленно. Например, если будет дата = 01.05.2007 с интервалом в 1 день (dd=1, все остальные параметры = 0), а диапазон равен 01.05.2057, то получается, что данная функция будет вызываться примерно 19000 раз. А если таких дат 100-200? А если не dd=1, а dmin? Короче, очень хотелось бы как-то оптимизировать это, но сам никак не могу придумать. Может кто что подскажет? |
| Автор: aktuba 1.5.2007, 14:03 | ||
Смотри, предположим есть дата: 01.05.2006 13:00, для которой прописано какое-то событие, которое должно выполняться еженедельно, т.е. 01.05.2006, 08.05.2006, 15.05.2006 и т.д. Теперь мне надо проверить, попадает ли это событие в диапазон от сегодня до послезавтра... Теперь нормально объяснил? Другого пути пока не вижу =(((( P.S.: счас заменю функцию на второй твой вариант, но мне кажется это не сильно поможет =((( Может еще какие идеи есть? |