Solved
Contributor
Posts: 22

# Difference in days between two dates

I am trying to calculate the difference in days between dates. More specifically between the values of variable Date and January 1, 2000.

Here it is my code and I have attached the data set:

`PROC IMPORT OUT= work.NBA	DATAFILE= "/folders/myfolders/NBA60.txt"	DBMS=CSV REPLACE;	DELIMITER=',';	GETNAMES=YES;RUN; PROC PRINT DATA=work.NBA;RUN; PROC PRINT DATA = NBA;	FORMAT Date WORDDATE. ;RUN;DATA NBA;	fecha = intck('day', DATE, "01Jan2000"d); RUN;PROC PRINT DATA=NBA;RUN;`

Accepted Solutions
Solution
‎03-04-2018 08:03 PM
Super User
Posts: 23,343

## Re: Difference in days between two dates

You forgot the SET statement in your data step.

``````DATA NBA_DURATION;
set NBA;
fecha = intck('day', DATE, "01Jan2000"d);
RUN;``````

All Replies
Solution
‎03-04-2018 08:03 PM
Super User
Posts: 23,343

## Re: Difference in days between two dates

You forgot the SET statement in your data step.

``````DATA NBA_DURATION;
set NBA;
fecha = intck('day', DATE, "01Jan2000"d);
RUN;``````
Super User
Posts: 6,642

## Re: Difference in days between two dates

Your data has some dates before year 2000, and some after.  So when you calculate the difference, which years should show a negative difference and which a positive difference?

Your formula calculates the number of days as negative for years after 2000.  It's easy to reverse that, and you don't need any functions to do it:

fecha = date - '01jan2000'd;

And yes, you do need a SET statement.

☑ This topic is solved.