I have seen posts regarding use of the date diff function.
1. I need to take a date say a variable called my_date, add 5 years to it (ie the my_date is always hardcoded on the 1st, 9/1/2010) 5 years from that date is 9/1/2015
2 Now I need to take that resulting date of 9/1/2015 and add 14 days to display if as 9/15/2015 as I always want the 15th of the month
3 Finally I need to subtract 4 months and show a final my_date as 5/15/2015
1. INTNX with Year -> intnx('year', date, 5, 's')
2. INTNX with Day (or just add 14)-> intnx('day', date, 14)
3. INTNX with Month -> intnx('month', date, -4, 's')
So, use the INTNX function to calculate your dates.
data want;
date1=mdy(9, 1, 2010);
date2=intnx('year', date1, 5, 's');
date3=intnx('day', date2, 14);
date4=intnx('month', date3, -4, 's');
format date: date9.;
run;
proc print;run;
Look at the function INTNX. Your requirements would require 3 calls to the function.
1. INTNX with Year -> intnx('year', date, 5, 's')
2. INTNX with Day (or just add 14)-> intnx('day', date, 14)
3. INTNX with Month -> intnx('month', date, -4, 's')
So, use the INTNX function to calculate your dates.
data want;
date1=mdy(9, 1, 2010);
date2=intnx('year', date1, 5, 's');
date3=intnx('day', date2, 14);
date4=intnx('month', date3, -4, 's');
format date: date9.;
run;
proc print;run;
data want;
date1=mdy(9, 1, 2010);
date2=intnx('year', date1, 5, 's');
date3=intnx('day', date2, 14);
date4=intnx('month', date3, -4, 's');
date5=intnx('month', date1, 5*12, 'm');
format date: date9.;
run;
proc print;run;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.
Ready to level-up your skills? Choose your own adventure.