BookmarkSubscribeRSS Feed
KafeelBasha
Quartz | Level 8

I would like to have the result of the following codes in year and days format.

 

years=9.1917808219 I want to see this as 9 year 191 days.

 

data dt;
a=today()-'01AUG2006'd;
b=a/365;
run;

 

Please help me.

5 REPLIES 5
PaigeMiller
Diamond | Level 26

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.

--
Paige Miller
RW9
Diamond | Level 26 RW9
Diamond | Level 26

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.

PGStats
Opal | Level 21

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.

PG
PaigeMiller
Diamond | Level 26

If you execute the code shown in the original post, the number 9.1917808219 comes from the lines of code

 

a=today()-'01AUG2006'd;
b=a/365;

It's not clear to me what the user wants to do with this number, which (s)he misinterprets as 9 years 191 days

--
Paige Miller
PGStats
Opal | Level 21

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;
PG

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

How to Concatenate Values

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 5 replies
  • 896 views
  • 0 likes
  • 4 in conversation