# lastworkdate — скрипт и функция диаграммы

Функция lastworkdate возвращает самую раннюю дату окончания для достижения указанного числа рабочих дней no\_of\_workdays (понедельник-пятница) с начальной датой start\_date и с учетом выходных, которые можно дополнительно задать в поле holiday. Поля start\_date и holiday должны быть действительными датами или метками времени.

Синтаксис:

lastworkdate(start\_date, no\_of\_workdays {, holiday})

**Тип возврата данных:** двойное значение

Аргументы:

аргументы Lastworkdate

| Аргумент | Описание |
| --- | --- |
| start\_date | Дата начала для оценки. |
| no\_of\_workdays | Количество рабочих дней, которое должно быть получено. |
| holiday | Периоды выходных дней для исключения из рабочих дней. Период выходных дней указан как дата начала и дата окончания, разделенные запятыми.<br><br>Пример: `  '25/12/2013', '26/12/2013' `<br><br>Можно исключить несколько периодов выходных дней, разделенных запятыми.<br><br>Пример: `  '25/12/2013', '26/12/2013', '31/12/2013', '01/01/2014' ` |

Примеры и результаты:

В этих примерах используется формат даты DD/ММ/YYYY. Формат даты указан в операторе SET DateFormat в верхней части скрипта загрузки. Измените формат в примерах согласно своим пожеланиям.

Пример 1:

`lastworkdate ('19/12/2014', 9)`

Возвращает «31/12/2014»

Пример 2:

`lastworkdate ('19/12/2014', 9, '2014-12-25', '2014-12-26')`

Возвращает «02/01/2015», поскольку учитывается двухдневный период выходных.

Пример 3:

Добавьте образец скрипта в свой документ и запустите. Затем добавьте на лист документа как минимум поля, указанные в столбце с результатами, чтобы увидеть результаты.

`ProjectTable:` `LOAD *, recno() as InvID INLINE [` `StartDate` `28/03/2014` `10/12/2014` `5/2/2015` `31/3/2015` `19/5/2015` `15/9/2015` `] ;` `NrDays:` `Load *,` `LastWorkDate(StartDate,120) As EndDate` `Resident ProjectTable;` `Drop table ProjectTable;`

` `

Результирующая таблица показывает возвращенные значения функции LastWorkDate для каждой записи в таблице.

Результаты примера 3

| InvID | StartDate | EndDate |
| --- | --- | --- |
| 1 | 28/03/2014 | 11/09/2014 |
| 2 | 10/12/2014 | 26/05/2015 |
| 3 | 5/2/2015 | 27/07/2015 |
| 4 | 31/3/2015 | 14/09/2015 |
| 5 | 19/5/2015 | 02/11/2015 |
| 6 | 15/9/2015 | 29/02/2016 |