Berechnen der Differenz von zwei Zeiten
Mit dem Fuba SD_DATETIME_DIFFERENCE können Sie die Differenz in Stunden berechnen
DATA: gf_datediff TYPE p,
gf_timediff TYPE p LENGTH 8 DECIMALS 4,
gf_earliest TYPE c.
DATA: gf_summe TYPE ltime,
gf_ende TYPE ltime,
gf_start TYPE ltime.
CALL FUNCTION 'SD_DATETIME_DIFFERENCE'
EXPORTING
date1 = <fs_teven>-ldate
time1 = gf_start
date2 = <fs_teven>-ldate
time2 = gf_ENDE
IMPORTING
datediff = gf_datediff
timediff = gf_timediff
earliest = gf_earliest
EXCEPTIONS
invalid_datetime = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Mit dem Fuba COPF_DETERMINE_DURATION können Sie die Differenz in einer belibigen Masseinheit berechnen und mit einem beliebigen Fabrikkalender.
DATA: gf_unit LIKE t006-msehi,
gf_calender LIKE scal-fcalid,
gf_duration TYPE f.
CALL FUNCTION 'COPF_DETERMINE_DURATION'
EXPORTING
i_start_date = <fs_teven>-ldate
i_start_time = gf_start
i_end_date = <fs_teven>-ldate
i_end_time = gf_ende
i_unit_of_duration = 'STD'
IMPORTING
e_duration = gf_duration " I_FACTORY_CALENDAR =
EXCEPTIONS
exception_raised = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.