I believe you're looking for the intck() continuous method.
data test;
format s_dt l_dt alt_end date9.;
s_dt = mdy(12,16,2008);
l_dt = mdy(1,15,2010);
months_1 = intck('month',s_dt,l_dt);
months_2 = intck('month',s_dt,l_dt,'c');
alt_end = intnx('month',s_dt,months_2,'same');
output;
s_dt = mdy(12,15,2008);
l_dt = mdy(1,15,2010);
months_1 = intck('month',s_dt,l_dt);
months_2 = intck('month',s_dt,l_dt,'c');
alt_end = intnx('month',s_dt,months_2,'same');
output;
run;
proc print data=test;
run;
... View more