如何计算两个日期之间的工作日数?

问题描述

我想计算ABAP中两个日期之间的差值。

我的第一个尝试是互相减去日期。

days_between = date1 - date2.

这可行,但是我想知道是否有一种方法可以只计算这两个日期之间的工作日。

解决方法

工作和休息日的列表可能因国家/地区和工厂而异。在基于ABAP的系统中,已经为国家/地区设置了日历,以定义工作日和休息日(周末,节假日)。您也可以定义自己的日历。在工厂日历中,每天都会分配一个连续的整数(也称为“出厂日期”),该数字在随后的两个工作日之间为+1(忽略休息日)。

要使用这些日历,必须使用以下官方发布的功能模块(SAP Library - Calendar Functions):

  • DATE_CONVERT_TO_FACTORYDATE:返回给定日期的序列号
  • FACTORYDATE_CONVERT_TO_DATE:将给定的序列号转换为日期

要计算两个日历日期之间的天数,必须首先使用DATE_CONVERT_TO_FACTORYDATE获取这两个日期的序列号,然后减去两个序列号。

,

您可以使用诸如RKE_SELECT_FACTDAYS_FOR_PERIOD之类的现有功能模块来计算日期范围内的工作日数。您需要告诉功能模块要使用的日历,因为这取决于位置(例如,不同国家/地区的银行假期等)。