Online File
Rick Aster: Professional SAS Programming Shortcuts: Contents
DATA WORK.YM / VIEW=WORK.YM;
SET CORP.CALENDAR;
BY DATE;
YEAR = YEAR(DATE);
MONTH = MONTH(DATE);
RUN;
DATA WORK.MONTH (KEEP=YEAR MONTH DAYS1-DAYS42 FLAG1-FLAG42);
SET WORK.YM;
BY YEAR MONTH;
ARRAY DAYS{6, 7} $ 2;
ARRAY FLAG{6, 7} $ 1;
RETAIN DAYS ' ' FLAG ' ' WEEK 1;
WEEKDAY = WEEKDAY(DATE);
IF FIRST.MONTH THEN DO;
DO W = 1 TO 6;
DO D = 1 TO 7;
DAYS{W, D} = ' ';
FLAG{W, D} = ' ';
END;
END;
WEEK = 1;
END;
ELSE IF WEEKDAY = 1 THEN WEEK + 1;
DAYS{WEEK, WEEKDAY} = PUT(DAY(DATE), F2.);
FLAG{WEEK, WEEKDAY} = OPENDAY;
IF LAST.MONTH THEN OUTPUT;
RUN;