data test1;
set test;
by usubjid descending visit descending svstdtc;
lagdtc=lag(svstdtc);
if first.usubjid then svendtc=svstdtc;
else svendtc=put(input(lagdtc,yymmdd10.)-1,yymmdd10.);
drop lagdtc;
run;
proc sort data=test1;
by usubjid visit svstdtc;
run;