Hello, I have a number that represents the number of days from January 1 of any year with January 1 as day 1. For example 10 will be January 10.
Using SAS how can I convert that number into day and month for example 10 = 01/10?
Thanks.
Pramodini
OK, it's easy enough to split this in two. These statements assume that your original variable is numeric. If it is actually character, the statements would change slightly.
year = int(juldateval / 1000);
days = mod(juldateval, 1000);
newdate = mdy(1, 1, year) + days - 1;
format newdate mmddyys10.;
How do you intend to supply the year? Getting the correct answer depends on whether or not it is a leap year.
I have 1956229 as input field that should translate into 8/16/1956
Where is the data from? I mean I can see year=1956 as first four characters, but the rest doesn't make sense and formating as date value is wrong.
1956229 as a field in which the year is 1956 and 229 is the 229th day of year 1956 that is August 16th which should display as 8/16/1956
OK, it's easy enough to split this in two. These statements assume that your original variable is numeric. If it is actually character, the statements would change slightly.
year = int(juldateval / 1000);
days = mod(juldateval, 1000);
newdate = mdy(1, 1, year) + days - 1;
format newdate mmddyys10.;
THANKS!! that works.
There already is a funtion to do that .
data _null_;
Xend=datejul(2001001);
put Xend / Xend date9.;
run;
Thank You. Let me try this.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
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.