我在ABAP中有一個程序,他們在一個變量中使用'timestampl'類型,所以他們可以得到某些事件的時間。他們使用它,因爲他們需要毫秒。2個時間戳之間的差異
我現在的任務是獲取兩個變量之間的差異,而我似乎無法找到功能模塊或其他解決方案。
任何幫助非常感謝!
我在ABAP中有一個程序,他們在一個變量中使用'timestampl'類型,所以他們可以得到某些事件的時間。他們使用它,因爲他們需要毫秒。2個時間戳之間的差異
我現在的任務是獲取兩個變量之間的差異,而我似乎無法找到功能模塊或其他解決方案。
任何幫助非常感謝!
谷歌搜索發現了這個建議:http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/840ad679-0601-0010-cd8e-9989fd650822#q-8:使用類CL_ABAP_TSTMP。您還可以在此線程中看到如何使用該類的示例:http://scn.sap.com/thread/85476。
cl_abap_tstmp=>systemtstmp_syst2utc(
exporting
syst_date = <wa_joblist>-strtdate
syst_time = <wa_joblist>-strttime
importing
utc_tstmp = start_stamp).
cl_abap_tstmp=>systemtstmp_syst2utc(
exporting
syst_date = sy-datum
syst_time = sy-uzeit
importing
utc_tstmp = now_stamp).
seconds = cl_abap_tstmp=>subtract(
tstmp1 = now_stamp
tstmp2 = start_stamp).
這實際上並沒有回答這個問題,它需要以毫秒爲單位的增量。 – tomdemuyt
使用FM * 'CCU_TIMESTAMP_DIFFERENCE' *
檢查哪些時間戳更大調用FM之後。
IF TIMESTAMP_2 > TIMESTAMP_1.
CALL FUNCTION 'CCU_TIMESTAMP_DIFFERENCE'
EXPORTING
TIMESTAMP1 = TIMESTAMP_2
TIMESTAMP2 = TIMESTAMP_1
IMPORTING
DIFFERENCE = TIMESTAMP_DIFFERENCE.
EndIf.
CCU_TIMSTAMP_DIFFERENCE
只接受短時間戳,但他們用毫秒工作,所以這FM是沒有用的,將是有益的。
嘗試的靜態方法
DATA: lv_tstmp1 TYPE timestampl,
lv_tstmp2 TYPE timestampl,
lv_diff TYPE tzntstmpl.
CALL METHOD cl_abap_tstmp=>subtract
EXPORTING
tstmp1 = lv_tstmp1
tstmp2 = lv_tstmp2
RECEIVING
r_secs = lv_diff.
這將正確地返回在秒和毫秒的時間戳2之間的差。
減去它?有什麼問題? :-) – zod
那麼,我不確定是否直接減量是一條路。這是否考慮不同的日子取決於月份和類似的事情? – Laloski