도무지 아무리 생각을 해봐도 알수가 없네요
말그대로 현재 날짜가 있으면 그날짜가 그달의 몇번째 주인지 알아야 합니다
도대체 어떻게 알수가 있는지 모르겠습니다 조금만 도와주십시요
다들 바쁘시고 힘드시겠지만 작은 도움좀 부탁드릴께요 제겐 큰힘이 될것입니다
댓글 7
-
지의
2009.02.03 17:06
-
아상[vaya con dios]
2009.02.03 17:16
그해의 몇주차가 아니고 그달의 몇주차니까...
어쩌지...
-
아카드05
2009.02.03 18:55
스탠다드에서 제공하는 함수가 없다면, 간단하게 perform문이나 펑션을 만들면 되지 않을까요?
우선 한 주가 두 달에 걸친 partial week일경우 그 주차를 앞에 월에 속하게 할건지, 뒤에 월에 속하게 할건지부터
현업에서 기준을 정해주기만 하면 로직 짜기는 그리 어렵지 않을거같습니다.
-
낭랑18세
2009.02.04 23:51
그달의 주차를 말씀 하시는 건지 아니면 1년의 주차를 말씀 하시는건지.~
1년의 주차를 구하는 함수는 있는 것으로 알고 있습니다.~ 이 주차를 가지고 현재월 1일의 주차를 알아 낸후 빼주면
그달의 주차를 알수 있을 것 같네요^^
-
옥뚱
2009.02.06 19:28
음 이거면 될까요..? 한번 보시기 바랍니다.
DATA : I_DATE LIKE SY-DATUM,
F_DATE LIKE SY-DATUM,
E_DATE LIKE SY-DATUM,
START_DATE1 LIKE SY-DATUM,
START_DATE2 LIKE SY-DATUM,
START_DATE3 LIKE SY-DATUM,
START_DATE4 LIKE SY-DATUM.
I_DATE = DATE.
CONCATENATE I_DATE(6) '01' INTO F_DATE.
CALL FUNCTION 'SLS_MISC_GET_LAST_DAY_OF_MONTH'
EXPORTING
DAY_IN = I_DATE
IMPORTING
LAST_DAY_OF_MONTH = E_DATE
EXCEPTIONS
DAY_IN_NOT_VALID = 1
OTHERS = 2.
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
START_DATE4 = E_DATE - 7.
START_DATE3 = E_DATE - 14.
START_DATE2 = E_DATE - 21.
IF START_DATE4 < I_DATE.
ENDWEEK = '4'.
ELSEIF ( START_DATE3 < I_DATE AND I_DATE <= START_DATE4 ).
ENDWEEK = '3'.
ELSEIF ( START_DATE2 < I_DATE AND I_DATE <= START_DATE3 ).
ENDWEEK = '2'.
ELSEIF ( I_DATE <= START_DATE2 ).
ENDWEEK = '1'.
ENDIF. -
sora
2009.08.20 23:52
DATA: endweek LIKE scal-week,
weekf LIKE sy-datum,
weekl LIKE sy-datum,
wdat LIKE sy-datum,
week01 LIKE sy-datum,
week02 LIKE sy-datum,
week03 LIKE sy-datum,
week04 LIKE sy-datum,
week05 LIKE sy-datum,
week06 LIKE sy-datum,
week07 LIKE sy-datum,
weekna TYPE string.
PARAMETERS: p_fkdat LIKE sy-datum.
CONCATENATE p_fkdat+(6) '01' INTO wdat.
CALL FUNCTION 'GET_WEEK_INFO_BASED_ON_DATE'
EXPORTING
date = wdat
IMPORTING
week = endweek
monday = weekf
sunday = weekl.
week01 = weekf.
week02 = weekf + 7.
week03 = weekf + 14.
week04 = weekf + 21.
week05 = weekf + 28.
week06 = weekf + 35.
week07 = weekf + 42.
IF p_fkdat BETWEEN week01 AND week02.
weekna = '첫번째주'.
ELSEIF p_fkdat BETWEEN week02 AND week03.
weekna = '두번째주'.
ELSEIF p_fkdat BETWEEN week03 AND week04.
weekna = '세번째주'.
ELSEIF p_fkdat BETWEEN week04 AND week05.
weekna = '네번째주'.
ELSEIF p_fkdat BETWEEN week05 AND week06.
weekna = '다섯번째주'.
ELSEIF p_fkdat BETWEEN week06 AND week07.
weekna = '여섯번째주'.
ENDIF.
저도 설련님과 같은 문제에 부딭쳐서 검색해보았지만 확실한 답을 못찾아서
이렇게 코딩하여보니 되더군요!
늦었지만 올립니다 ^^;;;
-
sora
2009.08.21 00:18
IF 부분을 이렇게 수정하시면 되겠습니다..
IF P_FKDAT >= week01 AND P_FKDAT < week02.
weekna = '첫번째주'.
ELSEIF P_FKDAT >= week02 AND P_FKDAT < week03.
weekna = '두번째주'.
ELSEIF P_FKDAT >= week03 AND P_FKDAT < week04.
weekna = '세번째주'.
ELSEIF P_FKDAT >= week04 AND P_FKDAT < week05.
weekna = '네번째주'.
ELSEIF P_FKDAT >= week05 AND P_FKDAT < week06.
weekna = '다섯번째주'.
ELSEIF P_FKDAT >= week06 AND P_FKDAT < week07.
weekna = '여섯번째주'.
ENDIF.
그냥 그 해 1월 1일 부터 현재 날짜 빼서 7로 나누면 주차 아닌가요? ㅎㅎㅎ
간단한건데...