고수님들.
함수를 사용하지 않고 현재 날짜를 이용해서 마지막 날짜를 구하는 방법
좀 가르쳐 주세요~
부탁드립니다.
댓글 5
-
숟가락맨
2009.09.25 03:06
-
민버미꺼!
2009.09.25 09:06
^^ 함수를 사용하세요..
SLS_MISC_GET_LAST_DAY_OF_MONTH 함수는 있을 거구요..
굳이 함수를 사용하지 않겠다 하시면 위 함수의 source code를 복사해 쓰시고요..
노가다 코드를 구현할 수도 있지만...편하게 함수 쓰세요..
노가다 코드 설명을 해드리면
아래 Form문을 호출하면 마지막 일자를 구할수 있겠네요..
Form frmLastDate using 오늘날짜 changing p_lastday.
data : l_month(2).
l_month = 오늘날짜의 월.
case l_month.
when 01.
p_lastday = '31'.
when 02.
when 12.
end Form.
그럼.
-
요요
2009.09.25 17:49
숟가락맨님 말씀을 코딩으로 하면...
이번달 마지막 날짜를 구하시오.
data l_datum type datum.
data l_mon type n length 2.
l_datum = sy-datum.
l_mon = l_datum+4(2) + 1.
if l_mon > 12. " 12월 이후이므로 년도 증가
add 1 to l_datum(4).
l_mon = l_mon - 12.
endif.
l_datum+4(2) = l_mon. " 다음달
l_datum+6(2) = '01'. " 1일
subtract 1 from l_datum. " 해당월의 마지막 일자
write : 'The last day of month ', sy-datum, '=>', l_datum.
이렇게 하시면 될 거예요.
-
YaoGuai
2009.10.05 20:47
DATA: DATMM TYPE I,
DATJJ TYPE I,
REST TYPE I,
TT TYPE I.
DATMM = SY-DATUM+4(2).
CASE DATMM.
WHEN 1. TT = 31.
WHEN 2. TT = 28.
WHEN 3. TT = 31.
WHEN 4. TT = 30.
WHEN 5. TT = 31.
WHEN 6. TT = 30.
WHEN 7. TT = 31.
WHEN 8. TT = 31.
WHEN 9. TT = 30.
WHEN 10. TT = 31.
WHEN 11. TT = 30.
WHEN 12. TT = 31.
ENDCASE.
IF DATMM = 2.
DATJJ = SY-DATUM+0(4).
REST = DATJJ MOD 4.
IF REST = 0.
TT = 29.
ENDIF.
ENDIF.
WRITE: 01 TT. -
대장군
2009.10.14 09:14
감사합니다~
오늘이...2009.09.24 일이면 다음달 1일 즉 2009.10.01 을 구해서 요기에서 1을 빼면 될듯하네요...