# firstworkdate 脚本和图表功能

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

语法：

firstworkdate(end\_date, no\_of\_workdays {, holiday} )

返回数据类型： 整数

参数：

参数

| 参数 | 描述 |
| --- | --- |
| end\_date | 要求值的结束日期的时间戳。 |
| no\_of\_workdays | 要实现的工作日天数。 |
| holiday | 从工作日排除假期。假日表示为字符串常量日期。您可以指定多个假期日期，以逗号分隔。<br><br>示例： `  '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014' ` |

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/firstworkdate.htm)

#### 示例和结果：

以下示例使用日期格式 DD/MM/YYYY。日期格式已经在数据加载脚本顶部的 SET DateFormat 语句中指定。可以根据要求更改示例中的格式。

脚本示例

| 示例 | 结果 |
| --- | --- |
| `firstworkdate ('29/12/2014', 9)` | 返回 17/12/2014。 |
| `firstworkdate ('29/12/2014', 9, '25/12/2014', '26/12/2014')` | 返回 15/12/2014，因为已将两天假期考虑在内。 |

示例：

将示例脚本添加到您的应用程序并运行它。要查看结果，请将结果列中列出的字段添加到应用程序中的工作表。

`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 值。

结果表

| 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 |