获取时间平均值-ABAP

伊祖鲁

ABAP中有没有一种方法可以获取时间平均值?

例如:在以下时间发生了一个事件

  • 08:30
  • 08:45
  • 09:00

如果从上述数据集中获取事件发生的平均时间,则为08:45。有一种方法可以在ABAP中进行计算吗?

伊祖鲁

我使用的方法是将时间转换为Unix格式。这意味着我可以通过正常除法得到平均值。

以下是用于转换为Unix时间的FM;

    CALL METHOD CL_PCO_UTILITY=>CONVERT_ABAP_TIMESTAMP_TO_JAVA(
      EXPORTING
        IV_DATE      = LD_IV_DATE
        "IV_MSEC      = LD_IV_MSEC
        IV_TIME      = LD_IV_TIME
      IMPORTING
        EV_TIMESTAMP = IN_UNIX_2 ).

输入:日期和时间输出:Unix格式的DateTime

然后只需将平均值加到19700101日期即可。

可以使用以下FM来完成;

  CALL FUNCTION 'TIMESTAMP_DURATION_ADD' "
    EXPORTING
      TIMESTAMP_IN  = 19700101000000            " timestamp     UTC Time Stamp in Short Form (YYYYMMDDhhmmss)
      TIMEZONE      = 'UTC'                     " timezone      Time Zone
      UNIT          = 'S'                       " t006-msehi    Unit of measurement
      DURATION      = IN_RUN_AVG
    IMPORTING
      TIMESTAMP_OUT = IN_AVG_FINAL              " timestamp     UTC Time Stamp in Short Form (YYYYMMDDhhmmss)
    .  "  TIMESTAMP_DURATION_ADD

因为Unix时间是从1970/01/01开始的秒数,所以可以使用此方法

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章