DATA Step, Macro, Functions and more

Reg:Dates Diff

Reply
Contributor
Posts: 37

Reg:Dates Diff

actually i am having a joining date i want to find how many years he was wroking to till date

data l;
sdate='12jan2010'd;
enddate=today()
Tot=yrdif(sdate, edate, 'ACT/365');
run;

But i wnat the output like this how many years,months and days to till date.

sdate          Years  Months days
12jan2010      2      2            3

Regular Contributor
Posts: 151

Re: Reg:Dates Diff

Here is a link to a useful article on the SAS website on how to calculate age from date of birth.

http://support.sas.com/kb/24/808.html

I've used this technique to answer your question, first of all I've calculated the total number of complete months between the 2 dates and then used this to get the values you need (years is the integer part of total_months/12, months is the remainder of total_months/12, days is the difference between the end date and the start date advanced by total_months.

data l;

format sdate enddate date9.;

sdate='12jan2010'd;

enddate=today();

_totmonths=intck('month',sdate,enddate)-(day(enddate)< day(sdate));

years=floor(_totmonths/12);

months=mod(_totmonths,12);

days=enddate-intnx('month',sdate,_totmonths,'S');

drop _totmonths;

run;

Ask a Question
Discussion stats
  • 1 reply
  • 138 views
  • 0 likes
  • 2 in conversation