## calculate date difference in months and days

Solved
Occasional Contributor
Posts: 10

# calculate date difference in months and days

Hello all,

I have a dataset with two dates Date_1 and Date_2. Date_1 has format datetime16. and informat 16. Date_2 has format \$8. and informat \$8. How do I calculate the date difference i.e Date_1- Date_2 in days and months.

 Date_1 Date_2 29Aug09:14:02:00 20090621

output:

 Days Months 69 2.26

Thanks!

Accepted Solutions
Solution
‎05-20-2017 04:46 PM
Super User
Posts: 22,875

## Re: calculate date difference in months and days

A fun with functions type exercise.

1. Convert dates to same type - use DATEPART() to get date portion of a DATETIME variable and use INPUT() to convert the character variable to a date variable.

2. Use INTCK() to calculate the differences - note the rules on how it's calculated and the last parameter (fourth) that defines the rules.

To convert the character variable you can use:

date2_var = input(date_2, yymmdd8.);
format date2_var date9.;

Here's the link to the most recent documentation on functions:

http://support.sas.com/documentation/cdl/en/lefunctionsref/69762/HTML/default/viewer.htm#p0w6napahk6...

If you have difficulty with the remaining functions, post what you've tried and what errors or incorrect output you receive.

All Replies
Solution
‎05-20-2017 04:46 PM
Super User
Posts: 22,875

## Re: calculate date difference in months and days

A fun with functions type exercise.

1. Convert dates to same type - use DATEPART() to get date portion of a DATETIME variable and use INPUT() to convert the character variable to a date variable.

2. Use INTCK() to calculate the differences - note the rules on how it's calculated and the last parameter (fourth) that defines the rules.

To convert the character variable you can use:

date2_var = input(date_2, yymmdd8.);
format date2_var date9.;

Here's the link to the most recent documentation on functions:

http://support.sas.com/documentation/cdl/en/lefunctionsref/69762/HTML/default/viewer.htm#p0w6napahk6...

If you have difficulty with the remaining functions, post what you've tried and what errors or incorrect output you receive.

Super User
Posts: 10,626

## Re: calculate date difference in months and days

data _null_;
infile cards expandtabs truncover;
input Date_1 : datetime32. Date_2 : yymmdd8.;
days=datepart(date_1)-date_2;
month=mod(yrdif(date_2,datepart(date_1),'act/act'),1)*12;
put days= month= ;
cards;
29Aug09:14:02:00	20090621
;
run;
☑ This topic is solved.