" 计算两个日期之间的天数,但是天数要不计星期六 星期天在内。
""TEST
DATA: YEAR_OF_VALID_FROM TYPE SCAL-YEAR,
YEAR_OF_VALID_TO TYPE SCAL-YEAR,
RETURN_CODE TYPE SY-SUBRC,
DATE LIKE SY-DATUM,
DATE1 LIKE SY-DATUM.
DATA: SUM TYPE I VALUE '3'.
DATA LT_WEEK TYPE STANDARD TABLE OF CASDAYATTR WITH HEADER LINE.
DATE = SY-DATUM.
DATE1 = DATE + 10.
CALL FUNCTION 'DAY_ATTRIBUTES_GET'
EXPORTING
FACTORY_CALENDAR = ' ' "工厂日历ID
HOLIDAY_CALENDAR = ' ' "假期日历ID
DATE_FROM = DATE "开始日期
DATE_TO = DATE1 "截止日期
LANGUAGE = SY-LANGU "系统当前语言
NON_ISO = ' '
IMPORTING
YEAR_OF_VALID_FROM = YEAR_OF_VALID_FROM
YEAR_OF_VALID_TO = YEAR_OF_VALID_TO
RETURNCODE = RETURN_CODE
TABLES
DAY_ATTRIBUTES = LT_WEEK "返回日期每日属性
EXCEPTIONS
FACTORY_CALENDAR_NOT_FOUND = 1
HOLIDAY_CALENDAR_NOT_FOUND = 2
DATE_HAS_INVALID_FORMAT = 3
DATE_INCONSISTENCY = 4
OTHERS = 5.
LOOP AT LT_WEEK.
IF LT_WEEK-WEEKDAY = '6' OR LT_WEEK-WEEKDAY = '7'.
SUM = SUM + 1.
ENDIF.
ENDLOOP.
WRITE :/ SUM.