#abap
#abap
Вопрос:
Я хочу рассчитать разницу между двумя датами в ABAP.
Моей первой попыткой было вычесть даты друг из друга.
days_between = date1 - date2.
Это работает, но мне было интересно, есть ли способ рассчитать только рабочие дни между этими двумя датами.
Ответ №1:
Список рабочих и нерабочих дней может отличаться в разных странах и на разных предприятиях. В системе на основе ABAP уже настроены календари для стран, чтобы определить, какие дни рабочие, а какие нерабочие (выходные, праздничные дни). Вы также можете определить свой собственный календарь. В заводском календаре каждому дню присваивается порядковый целый номер (также называемый «заводской датой»), который равен 1 между двумя последующими рабочими днями (выходные дни игнорируются).
Для работы с этими календарями необходимо использовать эти официально выпущенные функциональные модули (библиотека SAP — Функции календаря):
DATE_CONVERT_TO_FACTORYDATE
: возвращает серийный номер заданной датыFACTORYDATE_CONVERT_TO_DATE
: преобразует заданный серийный номер в дату
Чтобы рассчитать количество дней между двумя календарными датами, вы должны сначала получить порядковые номера этих двух дат с помощью DATE_CONVERT_TO_FACTORYDATE
, и вычесть два порядковых номера.
Ответ №2:
вы можете использовать существующий функциональный модуль, например RKE_SELECT_FACTDAYS_FOR_PERIOD
, для вычисления количества рабочих дней в диапазоне дат. Вам нужно будет указать функциональному модулю, какой календарь использовать, поскольку это зависит от местоположения (например, праздничные дни для разных стран и т. Д.).