I'm trying to create a macro that creates a table showing the last Friday of every month. The table will look like this:
So, if i select a range of years, say 2001 to 2013 it will create a table like this:
YEAR | MONTH | LASTFRIDAY |
---|---|---|
2013 | 02 | 22 |
2013 | 03 | 29 |
2013 | 04 | 26 |
2013 | 05 | ... |
2013 | 06 | ... |
2013 | 07 | ... |
2013 | 08 | ... |
... | ... | |
... | ... |
including all the years in the range I specify.
This seem reasonable, I always have to experiment with shifted intervals a bit before I can figure it. Find the last day of the month then find the first day of the week that "begins" on Friday "WEEK.6".
Hi,
You would be best served using the interval functions an example is here:
This seem reasonable, I always have to experiment with shifted intervals a bit before I can figure it. Find the last day of the month then find the first day of the week that "begins" on Friday "WEEK.6".
data _null_, shifted intervals are easy if you remember that interval.1 is the same as interval. It only gets complicated when you have large multipliers.
NULL,
Don't forget function nwkdom( ) .
data friday; do year=2001 to 2013; do month = 1 to 12; date=nwkdom(5,6,month,year); output; end; end; format date weekdate.; run;
Xia Keshan
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.