二维码

SAP ABAP开发中与日期相关的常用函数

Twilight发表于 2014-10-28 15:06liuxiaofei07 最后回复于 2022-07-11 17:53 [复制链接] 7237 6

ABAP开发中检查有日期相关的开发,比如:销售相关的天、月、周的销售数量和金额。其中HR模块对日期的计算更为复杂,下面只是列举了常用的日期计算方法:
1、根据日期计算另一个日期
  1. CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
  2.     EXPORTING
  3.       date      = sy-datum
  4.       days      = N "天数加N或者减N  不加也不减 写0
  5.       months    = N "月份加N或者减N 不加也不减 写0
  6.       signum    = '-' "可以是+或者-
  7.       years     = N "年份加N或者减N 不加也不减 写0
  8.     IMPORTING
  9.       calc_date = lv_on_date_e."得到加减之后的日期
复制代码
注意:days或months 不赋值时,不能注释掉,需要赋值0,否则直接dump。
说明:输入一个日期,输入间隔的天、月、年,输入运算符,函数返回计算出的日期;
该函数有点奇怪,20180331 +1个月 = 20180501,使用时根据场合自行调整。

2、查询某月的最后一天
  1. CALL FUNCTION 'LAST_DAY_OF_MONTHS'
  2.     EXPORTING
  3.       DAY_IN = FSTDAY_NMTH
  4.     IMPORTING
  5.       LAST_DAY_OF_MONTH = LSTDAY_NMTH
  6.     EXCEPTIONS
  7.       DAY_IN_NO_DATE = 1
  8.       OTHERS = 2.
复制代码
说明:输入一个日期,函数返回该日期所在月的最后一天的日期。

3、计算某日期的第一天
DATA:  T_DATE TYPE DATUM VALUE '20150810'.
游客,如果您要查看本帖隐藏内容请回复
说明:将日期的天位置一,即为当月第一天。注意需要加引号,否则表示数值型就错了。

4、计算当前日期 上月最后一天
  1. DATA: ultimo TYPE d.
  2. "服务器当前日期
  3. ultimo      = sy-datum.
  4. WRITE: / ultimo .
  5. "当前月的第一天,可以采用字符偏移操作
  6. ultimo+6(2) = '01'.          " = first day of this month
  7. WRITE: / ultimo .
  8. "上月最后一天
  9. ultimo      = ultimo - 1.    " = last day of last month
  10. WRITE: / ultimo .
复制代码

日期运算是以天为单位,时间运算以秒为单位
回复

使用道具 举报

qshiou
楼主棒棒哒
回复 支持 反对

使用道具 举报

teyun2222
感謝無私分享,學習了
回复 支持 反对

使用道具 举报

mckz8888
学习 学习 感谢分享
回复 支持 反对

使用道具 举报

xiao
谢谢分享
回复

使用道具 举报

www.sapabap
谢谢分享
回复

使用道具 举报

liuxiaofei07
楼主威武
回复

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表