Online File
Rick Aster: Professional SAS Programming Shortcuts: Contents
DATA CORP.CALENDAR (KEEP=DATE OPENDAY INDEX=(DATE) COMPRESS=NO); LENGTH DATE 4 OPENDAY $ 1; FORMAT DATE DATE9.; DO DATE = '01JAN2003'D TO '31DEC2014'D; MONTH = MONTH(DATE); DAY = DAY(DATE); WEEKDAY = WEEKDAY(DATE); OPEN = WEEKDAY NOTIN (1, 7); * U.S. holidays. ; * New Year's Day ; IF MONTH = DAY = 1 THEN OPEN = 0; * Memorial Day ; IF MONTH = 5 AND 25 <= DAY <= 31 AND WEEKDAY = 2 THEN OPEN = 0; * Independence Day ; IF MONTH = 7 AND DAY = 4 THEN OPEN = 0; * Labor Day ; IF MONTH = 9 AND 1 <= DAY <= 7 AND WEEKDAY = 2 THEN OPEN = 0; * Thanksgiving ; IF MONTH = 11 AND 22 <= DAY <= 28 AND WEEKDAY = 5 THEN OPEN = 0; * Christmas ; IF MONTH = 12 AND DAY = 25 THEN OPEN = 0; OPENDAY = PUT(OPEN, F1.); OUTPUT; END; RUN;