Как мне рассчитать количество рабочих дней между двумя датами?

#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 , для вычисления количества рабочих дней в диапазоне дат. Вам нужно будет указать функциональному модулю, какой календарь использовать, поскольку это зависит от местоположения (например, праздничные дни для разных стран и т. Д.).