Почему вычет метки времени дает минус в результате? - PullRequest
0 голосов
/ 18 января 2020

Время запуска моего приложения составляет 20191015110000.

  1. Последнее лучшее время для client_1 было: 20191015113000.
  2. Последнее лучшее время для client_1 было: 20191015103000.

Теперь я хочу получить этот результат после того, как мое приложение завершит sh процесс.

  1. Последний клиент Best-Time был: 20191015113000 Новый клиент Best-Time: 2019-10- 15T11: 30: 00 + 03: 00
  2. Лучшее время последнего клиента: 20191015103000 Лучшее время для нового клиента: '' (т.е. пусто)

Но я не могу получить необходимый результат. Кто-нибудь может указать мою ошибку?

Вот мой код ABAP:

DATA: lv_best_time           TYPE timestamp VALUE `20191015090000`,
      lv_campaign_start_time TYPE timestamp VALUE `20191015110000`,
      lv_new_best_time       TYPE string.


CONSTANTS: lc_one_hour TYPE i VALUE 3600.

IF lv_best_time IS NOT INITIAL.

  DATA(lv_ts_subtract) = cl_abap_tstmp=>subtract( EXPORTING tstmp1 = lv_campaign_start_time
                                                            tstmp2 = lv_best_time ).

  IF abs( lv_ts_subtract ) < lc_one_hour.
    lv_new_best_time = ``.
  ELSE.
    lv_new_best_time = |{ lv_best_time TIMESTAMP = ISO TIMEZONE = `MY TIMEZONE` }| && `+03:00`.
  ENDIF.
ENDIF.

WRITE: |Last Cleient Best-Time was: | && lv_best_time && ` ` && |New Client Best-Time is: | && lv_new_best_time.

1 Ответ

0 голосов
/ 19 января 2020

Следующий результат уже доступен с вашим кодом.

Last Client Best-Time was: 20191015113000 New Client Best-Time is: 2019-10-15T11:30:00+03:00

Второй результат

Last Client Best-Time was: 20191015103000 New Client Best-Time is: '' (i.e blank)

Вы должны изменить lc_one_hour с 3600 на 7201 или greator.

CONSTANTS: lc_one_hour TYPE i VALUE 7201.

...