获取平均时间 - ABAP
Get the Mean of Time - 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 格式的日期时间
然后将平均值添加到 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年1月1日开始以秒为单位的时间,所以可以使用这个方法
这样做:
数据:lv_clock类型sy-uzeit,
lv_type 输入 sy-uzeit.
抓紧时间。
lv_time = sy-uzeit.
您的代码...
抓紧时间。
lv_clock = sy-uzeit.
lv_clock = lv_clock - lv_time.
写:/lv_clock.
或者,您可以使用函数 'TIMESTAMP_DURATION_ADD'
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 格式的日期时间
然后将平均值添加到 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年1月1日开始以秒为单位的时间,所以可以使用这个方法
这样做:
数据:lv_clock类型sy-uzeit, lv_type 输入 sy-uzeit.
抓紧时间。 lv_time = sy-uzeit.
您的代码...
抓紧时间。 lv_clock = sy-uzeit.
lv_clock = lv_clock - lv_time.
写:/lv_clock.
或者,您可以使用函数 'TIMESTAMP_DURATION_ADD'