Amadeus cookies policy - you'll see this message only once.

Amadeus use cookies on this website. They help us to know a little bit about you and how you use our website, which improves the browsing experience and marketing - both for you and for others. They are stored locally on your computer or mobile device. To accept cookies, continue browsing as normal. Or, go to the privacy policy for more information.

Time Shifting

INTNX is a very useful SAS date function which returns a SAS date corresponding to a point within a time interval either in the past or the future. The general syntax of the INTNX function is:

Date_Variable = INTNX("interval",start_date,increment);

Intervals typically used with INTNX include WEEK, MONTH, QTR (quarter) and YEAR, and the function will return the start of the requested interval, e.g. weeks always begin on a Sunday and years on the 1st January.

It is not uncommon that the default starting points don't quite meet our needs. We can use a "shift index" in the interval specification to request an alternative starting point is used. For example the interval "WEEK.2" requests weeks which start on a Monday and "YEAR.11" requests years which start on the 1st November.

Here are a few examples using this technique:

data _null_; today = "10DEC2010"d;
  Next_Tuesday = INTNX("WEEK.3",today,1);
  Next_April_Fools = INTNX("YEAR.4",today,1);
put "The next Tuesday is: " Next_Tuesday date9.; put "The next April Fools Day is: " Next_April_Fools date9.; run;

The following is output to the SAS log:

The next Tuesday is: 14DEC2010
The next April Fools Day is: 01APR2011

For more information please consult the SAS Help documentation.