如何计算两个日期之间的工作日数?
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
得到这两个日期的序号,然后将这两个序号相减
我想计算 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
得到这两个日期的序号,然后将这两个序号相减