AlignedDate(Value: DateTime; [Forward: Boolean = True;] [ThrowException: Boolean = True]): DateTime;
Value. Проверяемая дата;
Forward. Направление сдвига календаря. Необязательный параметр;
ThrowException. Признак того, генерировать ли исключительную ситуацию, если проверяемая дата выходит за пределы дат ряда. Необязательный параметр. Возможные значения:
True. Значение по умолчанию. Генерируется исключительная ситуация;
False. Метод возвращает дату, ближайшую к началу или окончанию ряда.
Свойство AlignedDate возвращает ближайшую корректную дату.
Если проверяемая дата является выходным, то метод вернет ближайшую корректную дату в зависимости от значения параметра Forward:
Forward = True. Значение по умолчанию. Ближайшая корректная дата вперед по календарю;
Forward = False. Ближайшая корректная дата назад по календарю.
Если проверяемая дата является рабочим днем, то метод вернет проверяемую дату без изменения.
В данном примере приведен пользовательский метод расчета для ряда с дневной динамикой. Для выполнения примера добавьте ссылки на системные сборки «Ms», «Transform».
Function UserAlignedDate(Input: ITimeSeries): ITimeSeries;
Var
pContext: ITsCalculationContext;
i: Integer;
pSeries: ITimeSeries;
Begin
pContext := TsCalculation.Current;
pSeries := pContext.CreateTimeSeries;
For i := Input.StartIndex To Input.EndIndex Do
If Input.AlignedDate(Input.IndexToDate(i)) = Input.IndexToDate(i) Then
pSeries.Item(i) := 1 + Input.Item(i);
End If;
End For;
Return pSeries;
End Function UserAlignedDate;
Метод выполняет увеличение значений ряда, которые соответствуют рабочим дням.
См. также: