I'm passing a date and it will b a character only,can't i store it in any variable or macro variable like %let or as i'm doingin code.And how can i change this date into numeric and store in a variable so that i can find no of weekdays between these two dates.
%macro ab(strt,end);
a=&strt;
b=&end;
%put a= b=;
%mend;
%ab(01jan2015,31jan2015);
There's some mixing of data step and macro functionality going on in previous posts.
This would be an alternative to save those strings as dates.
%macro ab(strt,end);
%let a="&strt"d;
%let b="&end"d;
%put a=&a. b=&b.;
%mend;
%ab(01jan2015,31jan2015);
At that point, you should be able to use the dates in a function such as intck
e.g.
%macro ab(strt,end);
%let diff = %sysfunc(intck(day,"&strt."d,"&end."d));
%put Days between = &diff.;
%mend;
%ab(01jan2015,31jan2015);
I'm assuming this is part of a larger macro, so you'll be able to use the resulting value in a variable.
You want express them as macro variable ?
%macro ab(strt,end);
%let a=%sysfunc(inputn(&strt,date9.));
%let b=%sysfunc(inputn(&end,date9.));
%let dif=%eval(&b-&a);
%put a=&a b=&b dif=&dif;
%mend;
%ab(01jan2015,31jan2015)
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.