ABAP 常用日期处理
作者:Jasen Ye
- 2022 年 3 月 24 日
本文字数:1337 字
阅读完需:约 4 分钟
1.获取月份最后一天
函数: BKK_GET_MONTH_LASTDAY
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
i_date = i_date
IMPORTING
e_date = o_date.
复制代码
2.日期生成,按参数计算出日期
函数: FIMA_DATE_CREATE,计算参数可用正负数表示顺推还是逆推
CALL FUNCTION 'FIMA_DATE_CREATE'
EXPORTING
i_date = i_date “输入的基准日期
i_years = i_years ”计算参数-年
i_months = i_months ”计算参数-月
i_days = i_days ”计算参数-日
i_calendar_days = i_calendar_days
i_set_last_day_of_month = i_set_last_day_of_month “是否获取结果月的最后一天日期
IMPORTING
e_date = o_date.
复制代码
3.到期日计算
函数:FI_FIND_PAYMENT_CONDITIONS && DETERMINE_DUE_DATE
************ i_shkzg 借贷标识会影响到期日计算 ******************
******************** S借方时 到期日按付款条件正向计算 *************
******************** H贷方时 到期日等于过帐日 *******************
DATA: ls_sklin TYPE sklin.
DATA: lsi_faede TYPE faede,
lse_faede TYPE faede.
CALL FUNCTION 'FI_FIND_PAYMENT_CONDITIONS'
EXPORTING
i_zterm = i_zterm
i_bldat = sy-datum
i_budat = i_zfbdt
IMPORTING
e_sklin = ls_sklin
EXCEPTIONS
terms_incorrect = 1
terms_not_found = 2
no_date_entered = 3
no_day_limit_found = 4
OTHERS = 5.
IF sy-subrc <> 0.
RETURN.
ENDIF.
lsi_faede-shkzg = i_shkzg.
lsi_faede-zfbdt = i_zfbdt.
lsi_faede-koart = i_koart.
lsi_faede-zbd1t = ls_sklin-ztag1.
lsi_faede-zbd2t = ls_sklin-ztag2.
lsi_faede-zbd3t = ls_sklin-ztag3.
CALL FUNCTION 'DETERMINE_DUE_DATE'
EXPORTING
i_faede = lsi_faede
i_gl_faede = 'X'
* i_bseg =
* i_bkpf =
IMPORTING
e_faede = lse_faede
EXCEPTIONS
account_type_not_supported = 1
OTHERS = 2.
IF sy-subrc = 0.
e_netdt = lse_faede-netdt.
ENDIF.
----------------------------测试用例-----------------------------------
"到期日计算
*DATA:lv_zfbdt TYPE sy-datum VALUE '20220324',
* lv_zterm TYPE dzterm VALUE 'D033'.
*lv_zfbdt = zcl_devp_tools=>get_instance( )->determine_due_date( EXPORTING i_zfbdt = lv_zfbdt
* i_zterm = lv_zterm ).
复制代码
划线
评论
复制
发布于: 刚刚阅读数: 2
版权声明: 本文为 InfoQ 作者【Jasen Ye】的原创文章。
原文链接:【http://xie.infoq.cn/article/bc1e9a47f62c6d5e21785aebf】。未经作者许可,禁止转载。
Jasen Ye
关注
还未添加个人签名 2022.03.23 加入
还未添加个人简介
评论