*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(IN_RECTYPE) TYPE ALPDBRTYP
*" VALUE(IN_NBR_DWXMQY) TYPE I
*" VALUE(IN_DATE) TYPE ALDATE
*" EXPORTING
*" VALUE(OUT_DATE) TYPE ALDATE
*" EXCEPTIONS
*" OTHER_ERROR
*"----------------------------------------------------------------------
* R/3 2005S Version Standard 에 있는 펑션(SALP_CALC_DATE)이나
* Month/Quarter 는 마이너스값 입력시 적용안되는점 수정
* IN_RECTYPE : Days (D,R,I,H) or Weeks (W,A,B,C) or X-Days (X,E,F,G) or
* Months (M,J,K,L) or Quarters (Q,N,O,P) or Years (Y,S,T,U)
* IN_NBR_DWXMQY : 원하는 구간값입력(+/-)
* IN_DATE : 기준일자
* OUT_DATE : the result
DATA: dd TYPE i,
md TYPE i,
cd TYPE i,
mm TYPE i,
tt TYPE i,
op TYPE d,
fdate TYPE d.
CASE in_rectype.
WHEN 'D' OR 'R' OR 'I' OR 'H'.
fdate = in_date + in_nbr_dwxmqy.
WHEN 'A' OR 'B' OR 'W' OR 'C'.
fdate = in_date + ( in_nbr_dwxmqy * 7 ).
WHEN 'E' OR 'F' OR 'X' OR 'G'.
fdate = in_date + in_nbr_dwxmqy.
WHEN 'M' OR 'J' OR 'K' OR 'L'.
dd = in_nbr_dwxmqy DIV 12.
md = in_nbr_dwxmqy MOD 12.
mm = in_date+4(2).
cd = mm + in_nbr_dwxmqy.
fdate = in_date.
tt = fdate+6(2) - 1.
fdate+6(2) = '01'.
IF dd > 0.
fdate+0(4) = in_date+0(4) + dd.
ELSEIF cd <= 0.
fdate+0(4) = in_date+0(4) + dd.
ENDIF.
fdate+4(2) = in_date+4(2) + md.
IF fdate+4(2) > 12.
fdate+4(2) = fdate+4(2) MOD 12.
IF in_nbr_dwxmqy > 0.
fdate+0(4) = fdate+0(4) + 1.
ENDIF.
ENDIF.
fdate = fdate + tt.
WHEN 'Q' OR 'N' OR 'O' OR 'P'.
dd = ( in_nbr_dwxmqy * 3 ) DIV 12.
md = ( in_nbr_dwxmqy * 3 ) MOD 12.
cd = mm + in_nbr_dwxmqy.
fdate = in_date.
tt = fdate+6(2) - 1.
fdate+6(2) = '01'.
IF dd > 0.
fdate+0(4) = in_date+0(4) + dd.
ELSEIF cd <= 0.
fdate+0(4) = in_date+0(4) + dd.
ENDIF.
fdate+4(2) = in_date+4(2) + md.
IF fdate+4(2) > 12.
fdate+4(2) = fdate+4(2) MOD 12.
IF in_nbr_dwxmqy > 0.
fdate+0(4) = fdate+0(4) + 1.
ENDIF.
ENDIF.
fdate = fdate + tt.
WHEN 'Y' OR 'S' OR 'T' OR 'U'.
fdate = in_date.
fdate+0(4) = in_date+0(4) + in_nbr_dwxmqy.
WHEN OTHERS.
fdate = in_date.
RAISE other_error.
ENDCASE.
out_date = fdate.
댓글 7
-
체인지
2007.11.20 11:33
좋은 자료 감사합니다 -
화니
2008.02.05 09:08
좋은 자료 감사합니다.. -
hccpi
2008.06.20 11:44
좋은정보 고맙습니다.
-
Norton
2008.08.21 10:19
감사합니다 ^^. -
YaoGuai
2008.10.16 15:52
와우~~! 이 고마움.... 감사합니다 ^^ -
Cruel
2009.05.28 10:07
감사합니다~
-
11jay
2011.06.13 12:04
소중한 자료 잘 활용하겠습니다