之前寫abap遇到要日期計算的比方找出3個月前的今天是幾號

以前用這個
CALL FUNCTION 'CALCULATE_DATE'
EXPORTING
months = '-3'
start_date = sy-datum
IMPORTING
result_date = rdata.

但怪的是日期是20131231 竟然會回傳00000000
原來是20131231 系統把月減回去後變成20130931
09月沒有31天啊!所以日期格式回傳錯誤

後來發現要改用這個方式
CALL FUNCTION '/SAPHT/DRM_CALC_DATE'
EXPORTING
date = sy-datum
days = 0
months = 3
SIGN = ‘-‘
years = 0
IMPORTING
CALC_DATE = rdate.
已經恢復正常


如果要找出那個月份的最後一天是幾號可以用這種方式

CALL FUNCTION 'SLS_MISC_GET_LAST_DAY_OF_MONTH'
EXPORTING
day_in = GDAY-low
IMPORTING
LAST_DAY_OF_MONTH = GDAY-high

ROACH 發表在 痞客邦 PIXNET 留言(0) 人氣()