Wouther,
There is a more convenient way to deal with dates using 2 loops: one for years and one for months like this:
[pre]
%macro a(ds,de);
%local m m0 m1 ms me y ys ye date;
%let ms=%SUBSTR(&ds,1,2);
%let me=%SUBSTR(&de,1,2);
%let ys=%SUBSTR(&ds,5);
%let ye=%SUBSTR(&de,5);
%put A: ys=&ys ms=&ms ys=&ys ye=&ye;
%do y=&ys %to &ye;
%if &y GT &ye %then %let m0=1;
%else %let m0=&ms;
%if &y LT &ye %then %let m1=12;
%else %let m1=&me;
%do m=&ms %to &me;
;
%let date=%SYSFUNC(PUTN(%SYSFUNC(MDY(&m,01,&y)),date7.));
%put A: y=&y m=&m date=&date;
%end;
%end;
%mend a;
%a(08152008,10012010);
[\pre]
SPR
... View more