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