The CPM Procedure

 
HOLIDAY Statement

HOLIDAY variable / options ;
HOLIDAYS variable / options ;

The HOLIDAY statement specifies the names of variables used to describe non-workdays in the Holiday data set. PROC CPM accounts for holidays only when the INTERVAL= option has one of the following values: DAY, WORKDAY, WEEKDAY, DTDAY, DTWRKDAY, DTHOUR, DTMINUTE, or DTSECOND. The HOLIDAY statement must be used with the HOLIDATA= option in the PROC CPM statement. Recall that the HOLIDATA= option identifies the SAS data set that contains a list of the holidays and non-workdays around which you schedule your project. Holidays are defined by specifying the start of the holiday (the HOLIDAY variable) and either the length of the holiday (the HOLIDUR variable) or the finish time of the holiday (the HOLIFIN variable). The HOLIDAY variable is mandatory with the HOLIDAY statement; the HOLIDUR and HOLIFIN variables are optional.

The HOLIDAY and HOLIFIN variables must be formatted as SAS date or datetime variables. If no format is associated with a HOLIDAY variable, it is assumed to be formatted as a SAS date value. If the schedule of the project is computed as datetime values (which is the case if INTERVAL is DTDAY, WORKDAY, and so on), the holiday variables are interpreted as follows:

  • If the HOLIDAY variable is formatted as a date value, then the holiday is assumed to start at the value of the DAYSTART= option on the day specified in the observation and to end d units of interval later (where d is the value of the HOLIDUR variable and interval is the value of the INTERVAL= option).

  • If the HOLIDAY variable is formatted as a datetime value, then the holiday is assumed to start at the date and time specified and to end d units of interval later.

The HOLIDUR and HOLIFIN variables are specified using the following options in the HOLIDAY statement:
HOLIDUR= variable
HDURATION=variable

identifies a variable in the Holiday data set that specifies the duration of the holiday. The INTERVAL= option specified on the PROC CPM statement is used to interpret the value of the holiday duration variables. Thus, if the duration of a holiday is specified as 2 and the value of the INTERVAL= option is WEEKDAY, the length of the holiday is interpreted as two weekdays.

HOLIFIN=variable
HOLIEND=variable

identifies a variable in the Holiday data set that specifies the finish time of the holiday defined in that observation. If a particular observation contains both the duration as well as the finish time of the holiday, only the finish time is used; the duration is ignored.