Functions and CALL Routines 
Returns the difference in years between two dates.

sdate

specifies a SAS date value that identifies
the starting date.

edate

specifies a SAS date value that identifies
the ending date.

basis

identifies a character constant or variable
that describes how SAS calculates the date difference. The following character
strings are valid:

'30/360'

specifies a 30day month and a 360day year
in calculating the number of years. Each month is considered to have 30 days,
and each year 360 days, regardless of the actual number of days in each month
or year.
Alias: 
'360' 
Tip: 
If either date falls at
the end of a month, it is treated as if it were the last day of a 30day month. 

'ACT/ACT'

uses the actual number of days between dates
in calculating the number of years. SAS calculates this value as the number
of days that fall in 365day years divided by 365 plus the number of days
that fall in 366day years divided by 366.

'ACT/360'

uses the actual number of days between dates
in calculating the number of years. SAS calculates this value as the number
of days divided by 360, regardless of the actual number of days in each year.

'ACT/365'

uses the actual number of days between dates
in calculating the number of years. SAS calculates this value as the number
of days divided by 365, regardless of the actual number of days in each year.
In the following example, YRDIF returns the difference
in years between two dates based on each of the options for basis.
data _null_;
sdate='16oct1998'd;
edate='16feb2003'd;
y30360=yrdif(sdate, edate, '30/360');
yactact=yrdif(sdate, edate, 'ACT/ACT');
yact360=yrdif(sdate, edate, 'ACT/360');
yact365=yrdif(sdate, edate, 'ACT/365');
put y30360= yactact= yact360= yact365=;
run;
SAS Statements 
Results 
put y30360=;
put yactact=;
put yact360=;
put yact365=;

4.333333333
4.3369863014
4.4
4.3397260274

Copyright © 2011 by SAS Institute Inc., Cary, NC, USA. All rights reserved.