DATA Step, Macro, Functions and more

calculate date difference in months and days

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 5
Accepted Solution

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_1Date_2
29Aug09:14:02:0020090621

 

output: 

 

DaysMonths
692.26

 

Appreciate your help, 

Thanks!


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

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.

View solution in original post


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

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: 9,676

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.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 148 views
  • 1 like
  • 3 in conversation