INTTEST Function

Returns 1 if a time interval is valid, and returns 0 if a time interval is invalid.
Category: Date and Time


INTTEST(interval<<multiple.<shift-index> > > )

Required Argument

specifies a character constant, variable, or expression that contains an interval name, such as WEEK, MONTH, or QTR. Interval can appear in uppercase or lowercase. The possible values of interval are listed in Intervals Used with Date and Time Functions in SAS Language Reference: Concepts.
Multipliers and shift indexes can be used with the basic interval names to construct more complex interval specifications. The general form of an interval name is as follows:
Here are the three parts of the interval name:
specifies the name of the basic interval type. For example, YEAR specifies yearly intervals.
specifies an optional multiplier that sets the interval equal to a multiple of the period of the basic interval type. For example, YEAR2 consists of two-year, or biennial, periods.
specifies an optional shift index that shifts the interval to start at a specified subperiod starting point. For example, YEAR.3 specifies yearly periods that are shifted to start on the first of March of each calendar year and to end in February of the following year.
Restrictions:The shift index cannot be greater than the number of subperiods in the whole interval. For example, you could use YEAR2.24, but YEAR2.25 is invalid because there is no 25th month in a two-year interval.

If the default shift period is the same as the interval type, then only multiperiod intervals can be shifted with the optional shift index. For example, because MONTH type intervals shift by MONTH subperiods by default, monthly intervals cannot be shifted with the shift index. However, bimonthly intervals can be shifted with the shift index, because there are two MONTH intervals in each MONTH2 interval. For example, the interval name MONTH2.2 specifies bimonthly periods starting on the first day of even-numbered months.


The INTTEST function checks for a valid interval name. This function is useful when checking for valid values of multiple and shift-index. For more information about multipliers and shift indexes, see “Multiunit Intervals” in SAS Language Reference: Concepts.
The INTTEST function can also be used with calendar intervals from the retail industry. These intervals are ISO 8601 compliant. For more information, see Retail Calendar Intervals: ISO 8601 Compliant in SAS Language Reference: Concepts.


In the following examples, SAS returns a value of 1 if the interval argument is valid, and 0 if the interval argument is invalid.
SAS Statement
test1 = inttest('month');
put test1;
test2 = inttest('week6.13');
put test2;
test3 = inttest('tenday');
put test3;
test4 = inttest('twoweeks');
put test4;
var1 = 'hour2.2';
test5 = inttest(var1);
put test5;