10-08-2015 07:55 AM
I'm confused because 9.1917808219 is not 9 years 191 days.
It is 9 years and .1917808219 years (which is 70 days)
So please be more specific about what output you want.
10-08-2015 08:23 AM
I understand PaigeMiller here, its not clear what you want. From your given example you can reverse the formula you have given:
data dt; a=today()-'01AUG2006'd; b=a/365; c=b*365; d=c+"01AUG2006"d; format d date9.; run;
So b contains your 9.191... I fyou then multiply that by 365 and add the original base date back on you should arrive at today. However note that doing this whole a year is 365 days, rather than using proper interval functions is risky and might yield incorrect results. Why do you need to do this, have they not supplied the original dates used in the calculation as they should have.
10-08-2015 02:04 PM
That number (9.1917808219 I) must come from outside SAS as time intervals are not measured in years within SAS. Knowing where that time interval comes from would help finding a precise SAS equivalent.
10-08-2015 02:53 PM - edited 10-08-2015 02:53 PM
If you execute the code shown in the original post, the number 9.1917808219 comes from the lines of code
It's not clear to me what the user wants to do with this number, which (s)he misinterprets as 9 years 191 days
10-08-2015 03:29 PM
Oh! I finally get it. You'll get exact numbers with SAS interval functions:
data dt; years = intck("YEAR", '01AUG2006'd, today(), 'CONTINUOUS'); days = intck("DAY", intnx("YEAR", '01AUG2006'd, years, 'SAME'), today()); put (_ALL_) (=); run;