4

我需要使用四个输入参数 DATE_FROM、DATE_TO、TIME_FROM、TIME_TO 计算时​​差(以分钟为单位)。还有一个输出参数 DIFF_TIME。我创建了一个功能模块,我需要编写一个以分钟为单位计算时间差异的公式。

任何帮助都会很棒!

谢谢,赛。

4

2 回答 2

6

用于CL_ABAP_TSTMP=>TD_SUBTRACT获取两个日期/时间对之间的秒数。

(然后,要获得分钟数,请将秒数除以 60)。

例子:

DATA(today_date) = CONV d( '20190704' ).
DATA(today_time) = CONV t( '000010' ).
DATA(yesterday_date) = CONV d( '20190703' ).
DATA(yesterday_time) = CONV t( '235950' ).

cl_abap_tstmp=>td_subtract(
  EXPORTING
    date1    = today_date
    time1    = today_time
    date2    = yesterday_date
    time2    = yesterday_time
  IMPORTING
    res_secs = DATA(diff) ).

ASSERT diff = 20. " verify expectation or short dump
于 2012-09-25T17:19:19.667 回答
2

如果保证这些值在同一时区,那么您不需要任何特殊的功能模块或实用程序方法就很容易了。阅读这篇文章,然后得到日期的差异并将其乘以 24 * 60 并得到时间的差异(以秒为单位)并将其除以 60。总结一下就可以了。

于 2012-09-25T17:29:34.300 回答