Hello..
Quick Example:
Date A = 31Dec2012
Date B = 12Dec2012
Then I want to know which nth Weekday Date A is since Date B
In this example Date A would be the 3rd Monday since Date B.
Is there anyway to calculate this automatically? Output like 3-2 (3rd-Monday)
Regards,
Raphael
DATA _NULL_;
DATEA='31DEC2012'D;
DATEB='12DEC2012'D;
VAR=COMPRESS(INTCK('WEEK', DATEB, DATEA)||"-"||WEEKDAY(DATEA));
PUT VAR;
RUN;
You may be able to accomplish this using a combination of INTCK which returns intervals between SAS date values such as weeks, and the WEEKDAY function which will return day of the week of a SAS date value. Check the online help for syntax, intervals supported and starts (not everyone considers the week to start on the same day).
It doesn't matter in this situation on which day the week starts. "Check online help"-Answers are useless. Thanks anyway.
Check out the below code and see if it works for you.
data one;
length output $10;
date_a = '31Dec2012'd;
date_b = '12Dec2012'd;
weeka = week(date_a,'u');
weekdaya = weekday(date_a);
weekb = week(date_b,'u');
output = strip(put(weeka-weekb,best.))||'-'||strip(put(weekdaya,best.));
format date_a date_b date9.;
run;
Bit complicated :smileysilly:
Will post my solution.. Bit smaller.. But thanks
DATA _NULL_;
DATEA='31DEC2012'D;
DATEB='12DEC2012'D;
VAR=COMPRESS(INTCK('WEEK', DATEB, DATEA)||"-"||WEEKDAY(DATEA));
PUT VAR;
RUN;
Don't feed the trolls...
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.