首页 > 其他 > 详细

ABAP 时间计算 增加秒

时间:2021-06-12 01:02:18      阅读:27      评论:0      收藏:0      [点我收藏+]

输入:日期,时间,秒数

思路1:把秒进行计算,得到天数和剩余的秒;天数累加到日期上的到新日期,秒累加到时间上得到新时间(如果新时间小于旧时间,说明夸天,新日期需要加1)

思路2:日期、时间转换成时间戳,使用 Function: TIMESTAMP_DURATION_ADD, 得到累加后的时间戳;解析新的时间戳得到结果

输出:累加后的日期,累加后的时间

 

 

DATA: lv_date   TYPE sy-datum VALUE 20130210,
      lv_time   TYPE sy-uzeit VALUE 080730,
      lv_second TYPE int4 VALUE 10000.
DATA: lv_date_n TYPE sy-datum,
      lv_time_n TYPE sy-uzeit.
WRITE: |{ lv_date } { lv_time } |.
PERFORM sub_time_add_second.
WRITE: / |{ lv_date_n } { lv_time_n } |.
PERFORM sub_time_add_second2.
WRITE: / |{ lv_date_n } { lv_time_n } |.


FORM sub_time_add_second.

  DATA: lv_day        TYPE i,
        lv_hour       TYPE i,
        lv_minu       TYPE i,
        lv_sec        TYPE i,
        lv_day_second TYPE i.
  BREAK-POINT.
  "每天有多少秒
  lv_day_second = 24 * 60 * 60.
  lv_day = lv_second DIV lv_day_second.                                "得到天数
  lv_sec = lv_second MOD lv_day_second.                                "得到剩余的秒数
  WRITE: / |累加{ lv_second }秒(即{ lv_day }天{ lv_sec }秒) |.

  lv_date_n = lv_date + lv_day.
  lv_time_n = lv_time + lv_sec.
  IF lv_time_n < lv_time.
    lv_date_n = lv_date_n + 1.
  ENDIF.

ENDFORM.

FORM sub_time_add_second2.

  DATA: lv_timestamp   TYPE tzntstmps,
        lv_timestamp_n TYPE tzntstmps.
  "转换成时间戳
  CONVERT DATE lv_date
          TIME lv_time
  INTO TIME STAMP lv_timestamp TIME ZONE UTC. "sy-zonlo.
  "时间戳累加
  CALL FUNCTION TIMESTAMP_DURATION_ADD
    EXPORTING
      timestamp_in    = lv_timestamp
      timezone        = UTC
      duration        = lv_second
      unit            = S
    IMPORTING
      timestamp_out   = lv_timestamp_n
    EXCEPTIONS
      timestamp_error = 1
      OTHERS          = 2.
  WRITE: / |时间戳{ lv_timestamp } + { lv_second } = { lv_timestamp_n }|.
  "时间戳解析
  CONVERT TIME STAMP lv_timestamp_n TIME ZONE UTC "sy-zonlo
  INTO DATE lv_date_n
       TIME lv_time_n.

ENDFORM.

 

ABAP 时间计算 增加秒

原文:https://www.cnblogs.com/keyuming/p/14876143.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!