• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 3597
  • Last Modified:

In SAS, is there a NETWORKDAYS function (like in Excel)?

In Excel, there is a NETWORKDAYS function (that calculates the Net number of Working Days between two dates, excluding weekends and optionally, a user-data-range of holiday dates).  Is there a similar function in SAS?

2 Solutions

I don't know of a way to use user-defined holidays.  However, if you want to calculate the number of days between two dates, excluding weekends, you can use the INTCK function with the WEEKDAY interval:

DATA Test;
  Date1 = '01Jan2011'd;
  Date2= '31Dec2011'd;

  Days1 = INTCK("WEEKDAY" , Date1, Date2);   /*  Num days excluding Sat and Sun */
  Days2 = INTCK("WEEKDAY561W" , Date1, Date2); /*  Num days excluding Fri, Sat and Sun */
  PUT Days1= Days2=;
d507201Database Marketing ConsultantCommented:

Put a list of holidays into an array.  Then after using the INTCK to calculate number_of_days loop thru the array and subtract 1 for each holiday found.  

  array holidays {*} ('01jan2011'd '26dec2011'd);

  do n=1 to dim(holidays);
    if date1 le holidays{n} le date2 then days1=days1-1;

  drop n;

Here's the officiial list of federal holidays -- http://www.opm.gov/Operating_Status_Schedules/fedhol/2011.asp

Here's a list of holidays that includes fun holidays Fat Tuesday and Mother's Day --
murachAuthor Commented:
Thanks, both.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now