# firstworkdate - 指令碼與圖表函數

firstworkdate 函數會傳回在不晚於 end\_date 前結束，並考慮到所有選用的列出假日，而可達到 no\_of\_workdays (星期一至星期五) 的最近開始日期。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 |