firstworkdate - 指令碼與圖表函數
firstworkdate 函數會傳回在不晚於 end_date 前結束,並考慮到所有選用的列出假日,而可達到 no_of_workdays (星期一至星期五) 的最近開始日期。end_date 和 holiday 應該是有效的日期或時間戳記。
語法:
firstworkdate(end_date, no_of_workdays {, holiday} )
傳回的資料類型: 整數
引數:
引數
end_date
|
要評估之結束日期的時間戳記。 |
no_of_workdays
|
要達到的工作日數目。 |
holiday
|
要從工作日中排除的假期。假日以字串常數日期表示。您可以指定多個假日日期,以逗點分隔。
範例: '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014'
|
這些範例使用日期格式 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 |