# firstworkdate - 脚本和图表函数

firstworkdate 函数用于返回最近的起始日以获得 no\_of\_workdays（周一至周五），它不迟于 end\_date，并已将任何列出的可选节假日考虑在内。end\_date 和 holiday 应是有效的日期或时间戳。

语法：

firstworkdate(end\_date, no\_of\_workdays [, holiday] )

**返回数据类型：**整数

参数：

FirstWorkDate 参数

| 参数 | 说明 |
| --- | --- |
| end\_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/MM/YYYY。日期格式已经在加载脚本顶部的 SET DateFormat 语句中指定。可以根据要求更改示例中的格式。

示例 1:

`firstworkdate ('29/12/2014', 9)`

返回 17/12/2014。

示例 2:

`firstworkdate ('29/12/2014', 9, '25/12/2014', '26/12/2014')`

返回 15/12/2014，因为已将两天假期考虑在内。

示例 3:

将示例脚本添加到文档并运行。然后，至少要将结果列中列出的字段添加到文档中的表格才能查看结果。

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

` `

结果列表显示了为表格中的每条记录返回的 FirstWorkDate 值。

示例 3 结果

| InvID | EndDate | StartDate |
| --- | --- | --- |
| 1 | 28/03/2015 | 13/10/2014 |
| 2 | 10/12/2015 | 26/06/2015 |
| 3 | 5/2/2016 | 24/08/2015 |
| 4 | 31/3/2016 | 16/10/2015 |
| 5 | 19/5/2016 | 04/12/2015 |
| 6 | 15/9/2016 | 01/04/2016 |