The previous posts all raise valid points. Let's take a look at your code a bit more closely.
You move back 365 * 30 days. That's only approximately correct. A block of 30 years will contain approximately 7 leap years, where that year contains 366 days. So a more accurate attempt would be:
DOB = intnx('year', today(), -30, 'same');
That moves back to the same day of the year as the current date, 30 years ago. And as was pointed out, there will be many valid dates that fit the bill. This calculation gives you one of those valid dates.
What have you tried so far? Please post your code.
Looks good to me. Have a look at the INTNX function for an alternative.
The previous posts all raise valid points. Let's take a look at your code a bit more closely.
You move back 365 * 30 days. That's only approximately correct. A block of 30 years will contain approximately 7 leap years, where that year contains 366 days. So a more accurate attempt would be:
DOB = intnx('year', today(), -30, 'same');
That moves back to the same day of the year as the current date, 30 years ago. And as was pointed out, there will be many valid dates that fit the bill. This calculation gives you one of those valid dates.
Thanks a lot for explaining it so well. The code worked perfectly.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.