SD_DATETIME_DIFFERENCE

Категория:

Группа функций SAP:

Описание модуля: 
Высчитывает разницу в днях и часах между двумя произвольно заданными датами
Пример использования: 
*& Confidential and Proprietary
*& Copyright 2014
*& All Rights Reserved
*& Title: Пример использования функционального модуля SD_DATETIME_DIFFERENCE
*& Web site: http://abap.kz/
*& Description:
*& Высчитывает разницу в днях и часах между двумя произвольно заданными датами
*& Дата и время начала и конца диапазона задаются в стандартном типе SY-DATUM
*& (YYYYMMDD, YYYY - Год, MM - Месяц, DD - День).
*& Из особенностей работы:
*& 1. Разница вычисляется только для полного количества часов, т.е. между 01:00 и 02:30
*&    будет возвращено все равно 1 час.
*& 2. Обязательно нужно задавать поля времени, например хотя бы 1 минута, иначе функция
*&    ничего не вернет (Спасибо индусам за наше счастливое детство, но оказывается в этой
*&    Индии 00:00:00 времени не бывает в принципе)
*& 3. Даты можно задавать как от большей к меньшей так и наоборот, при этом переменная l_earliest
*&    будет содержать следующие значения =2 - дата1 больше даты2, =1 - дата1 меньше дата2, если даты
*&    равны, тогда сравниваются времена и =2 - время1 больше времени2 и =1 - время 1 меньше времени2,
*&    если даты и время совпадают, тогда переменная = 0.
 
report  ZBC_REPT_TEST_SOURCE.
 
parameters:
p_d_one type  sy-datum default sy-datum,
p_d_two type  sy-datum default sy-datum,
p_t_one type  sy-uzeit default '100000',
p_t_two type  sy-uzeit default '120000'.
 
 
data:
      lv_datediff type p
     ,lv_timediff type p
     ,lv_earliest type c.
 
 
call function 'SD_DATETIME_DIFFERENCE'
exporting
  date1            = p_d_one
  time1            = p_t_one
  date2            = p_d_two
  time2            = p_t_two
importing
  datediff         = lv_datediff
  timediff         = lv_timediff
  earliest         = lv_earliest
exceptions
  invalid_datetime = 1
  others           = 2.
 
 
write:/'Количество дней:',lv_datediff.
write:/'Количество часов:',lv_timediff.
Параметры: 
ПараметрНазвание параметраОписание параметраТип параметра
Импорт
DATE1
Дата 1
Импорт
TIME1
Время 1
Импорт
DATE2
Дата 2
Импорт
TIME2
Время 2
Экспорт
DATEDIFF
Количество дней между датой 1 и датой 2
Экспорт
TIMEDIFF
Количество часов между датой 1 и датой 2
Экспорт
EARLIEST
Особая ситуация
INVALID_DATETIME
Ошибка даты и времени