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