The following macro is kind of what I use to create a date dimension with the workdays added in and the dates you used. According to my dataset, feb 18 is the 49th day in the year and the 34th workday not 48th. January has 20 days and Feb has to have less than 20 so not sure how you came up with 48 days.
%MACRO DATE_DIMENSION(startdate=, enddate=, outfil=);
data &outfil;
retain number_workdays;
do _n_ = &startdate to &enddate;
date_id + 1;
date = _n_;
format date mmddyy10.;
month = month(date);
calendar_month = year(date)*100+month(date);
day = day(date);
year = year(date);
quarter = mod(qtr(date)+2,4)+1;
length fiscal_year $10.;
if quarter in (2, 3,4) then fiscal_year=compress(cat(year ,"/",year+1));
else if quarter=1 then fiscal_year=compress(cat(year-1,"/",year));
format fiscal_year $10.;
length fiscal_year $10.;
dayofweek=weekday(date);
if dayofweek >= 2 and dayofweek<=6 then workday=1; else workday=0;
if date in ('03JAN2011'd,'21FEB2011'd,'22APR2011'd,'23MAY2011'd,
'01JUL2011'd,'01AUG2011'd,'05SEP2011'd,'10OCT2011'd,'11NOV2011'd,
'25DEC2011'd,'26DEC2011'd ) then isholiday=1; else isholiday=0;
if isholiday then workday=0;
if day=1 and month=1 then number_workdays=0;
number_workdays+workday;
output;
end;
run;
%MEND DATE_DIMENSION;
%date_dimension(startdate='01jan2011'd, enddate='01jan2012'd,outfil=date_dimension)