/*___________________________________________________________________ Ĥ MACRO: FISCALYR Ĥ Ĥ JOB: Data Quality Ĥ Ĥ PROGRAMMER: Mahmoud Azimaee Ĥ Ĥ DATE: April 2011 Ĥ Ĥ DESCRIPTION: This Macro creates a fiscal year format to be used Ĥ Ĥ on a SAS Date variable. The format will be saved asĤ Ĥ a SAS file in /dq/saswork/[USERNAME]/ under the Ĥ Ĥ name 'temp_fy.sas'. Ĥ Ĥ Use %include 'temp_fy.sas' in your programs to Ĥ Ĥ call it. The format name is 'fy.' . Ĥ Ĥ PARAMETERS: STARTYR= First part of the starting fiscal year Ĥ Ĥ ENDYR= First part of the ending fiscal year Ĥ Ĥ EXAMPLE: %fiscalyr(1992,2009); Ĥ ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ*/ **********************************************************************; %Macro fiscalyr(startyr,endyr); %PUT ___________________________________________________________________; %PUT Ĥ Manitoba Centre for Health policy (MCHP) Ĥ; %PUT Ĥ MACRO: FISCALYR Ĥ; %PUT Ĥ JOB: Data Quality Ĥ; %PUT Ĥ PROGRAMMER: Mahmoud Azimaee Ĥ; %PUT Ĥ DATE: April 2011 Ĥ; %PUT Ĥ Running for: &STARTYR - &ENDYR ; %PUT ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ; data fiscalyr; start='"01Apr'; middle='"d - "31Mar'; end='"d = '; length des $50. ; startnum=SYMGETN('startyr'); endnum=SYMGETN('endyr'); yrs=endnum - startnum; do i=0 to yrs; lcl=startnum + i; ucl=lcl + 1; des=start || put(lcl,$4.) || middle || put(ucl,$4.) || end || "'" ||put(lcl,$4.) || "/" || substr(put(ucl,$4.),3,2) || "'"; output; end; run; data _null_ ; file "/dq/saswork/&spdsuser/temp_fy.sas" ; /*where /dq/saswork/&spdsuser is the directory to save to temp_fy.sas*/ set fiscalyr end=last; if _n_=1 then do; put 'proc format;'; put 'value fy'; end; put des; if last then put "other = 'Other Years';"; run; proc datasets library=work ; delete fiscalyr; run; %Mend fiscalyr;