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

How do I calculate the number of workdays between two dates?

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

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

days_between = date1 - date2.

这行得通,但我想知道是否有办法只计算这两个日期之间的工作日。

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

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

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

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

要计算两个日历日期之间的天数,必须先用DATE_CONVERT_TO_FACTORYDATE得到这两个日期的序号,然后将这两个序号相减