得到时间平均值- ABAP



在ABAP中是否有方法获得时间集的平均值?

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

  • 塔利班)
  • 时间为
  • 上午9点

如果从上述数据集中取事件发生的平均时间,则为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格式的日期时间

然后把平均值加到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开始以秒为单位的时间计数

do this:

data: lv_clock type sy-uzeit,Lv_type type sy-uzeit.

时间。Lv_time = sy-uzeit.

代码…

时间。Lv_clock = sy-uzeit.

lv_clock = lv_clock - lv_time.

write:/lv_clock.

或者,您可以使用函数'TIMESTAMP_DURATION_ADD'

相关内容

  • 没有找到相关文章

最新更新