Хранение периодов дат. И работа с ними.

DNT

Постоялец форума
Lotus team
12.10.2005
594
2
#1
Есть необходимость проверять какой лимит был у абонента в том или ином месяце.
В работе должно выглядеть так: анализируя дату на входе функция возвращает значение лимита для абонента в данное время.

Как это привильней разрулить? С одной стороны как эту информацию хранить и накапливать? С другой как делать выборку значения лимита по дате.?

что-то никак не придумаю...
спс за ответы. :D
 
O

Ogion7

#2
Непонял, разницу между "Датой окончания лимита" и Сегодня что-ли посчитать?
 

GROMILA

Well-known member
08.04.2004
297
0
#3
у абононта лимит чего? лимит колбасы?
анализируя какую дату на входе?

Плюс следует привести пример: исходные данные, входные параметры и что должно получиться на выходе!!!!
 

DNT

Постоялец форума
Lotus team
12.10.2005
594
2
#4
Да какая разница лимит чего? Пусть будет колбаса... :D

Задача:
1.Необходимо в БД сохранить и обновлять переодически документ-справочник следующего вида:

1. с 1.12.2006 по 1.01.2007 - лимит 5 кг.
2. с 1.01.2007 по 15.01.2007 - лимит 10 кг.
...
N. с dd.mm.yyyy по dd.mm.yyyy - лимит X кг.

Количество и "размер" интервалов не должен ограничиваться

2.
Затем проверять определенную дату на то, в какой из этих интервалов она попадает.
Например: анализируем дату 10.01.2007.
Попали во второй интервал - взяли лимит 10 кг. Проверили, а пользователь, собако, сожрал 11 кг. Уволить!!! :)

Так вот собственно и вопросы:
1. как хранить? в виде чего?
2. как проверять куда попали? хотя если подскажете как хранить думаю со вторым вопросом разберусь...
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#5
<!--QuoteBegin-DNT+22:03:2007, 13:58 -->
<span class="vbquote">(DNT @ 22:03:2007, 13:58 )</span><!--QuoteEBegin-->1. как хранить? в виде чего?
[snapback]59816" rel="nofollow" target="_blank[/snapback]​
[/quote]
Два типа документов.
1. Документ абонента.
2. Документ лимита (подчиненные документу абонента).

<!--QuoteBegin-DNT+22:03:2007, 13:58 -->
<span class="vbquote">(DNT @ 22:03:2007, 13:58 )</span><!--QuoteEBegin-->2. как проверять куда попали? хотя если подскажете как хранить думаю со вторым вопросом разберусь...
[snapback]59816" rel="nofollow" target="_blank[/snapback]​
[/quote]
Обработать коллекцию.
 

GROMILA

Well-known member
08.04.2004
297
0
#6
Документы
Form = Limita
Пользователь = Гриша
с = 1.12.2006
по = 1.01.2007
лимит = 5 кг.

Выборка
Сколько имел :) лимитов Гриша первого числа сего месяца?
FTSearch(Form = Limita &
Пользователь = Гриша &
с<=Проверяемая дата &
Проверяемая дата <=1.01.2007
)
Получишь коллекцию пересекающихся диапазонов дат и лимитов
если не контроллировать при вводе.

Замечание: при сравнении диапазона дат влияют часы:минуты:секунды, посему даты
диапазонов следует сохраять с предварительным форматированием
дата C должна быть 0:00:00, а дата ПО должна быть 23:59:59