# firstworkdate - 指令碼與圖表函數

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