如何从abap的日期获得日期编号?

时间:2015-07-16 20:12:25

标签: sap abap

我需要将“MM / DD / YYYY”格式的日期转换为一个数字,表示该年份的哪一天。 I.E '01 / 01 / YYYY'= 1和'12 / 31 / YYYY'= 365。在ABAP中有没有内置功能?我试过谷歌搜索,但我找不到任何这样做的功能

3 个答案:

答案 0 :(得分:3)

完全没必要依赖系统中可能存在或不存在的任何功能模块。只需使用基本的内置语言元素:

DATA: l_my_date TYPE d, " note that the data type D is YYYYMMDD 
      l_jan_01  TYPE d, " This will be jan 1 of the needed year
      l_day     TYPE i.

l_my_date = ...whatever... 
l_jan_01 = l_my_date. 
l_jan_01+4 = '0101'. " or any other means to get the first day of the year. 
l_day = l_my_date - l_jan_01 + 1.    

答案 1 :(得分:3)

您可以在这里找到一行代码:

DATA(g_day) = p_date - CONV d( p_date(4) && '0101' ) + 1.

答案 2 :(得分:2)

您可以使用此功能模块:HR_AUPBS_MONTH_DAY

您必须传递一个初始日期和结束日期,它将返回两者之间的天数(这是您想要的):

CALL FUNCTION 'HR_AUPBS_MONTH_DAY'
  EXPORTING BEG_DA     = P_BEGDA    " Here you should put the first day of the year
            END_DA     = P_ENDDA    " Here you put the date
  IMPORTING NO_CAL_DAY = P_CAL_DAY. " This is what you want