The Business Calendar  tool provides a  solution for the  question 'How
many  working days  exist  between 2  dates?'.   A  'business calendar'
object  (a *USRSPC) must be created.   The definition of 'working days'
is made  by  use of  the  WRKBUSCAL command  which  allows days  to  be
'excluded'  such   as  'Saturday',  'Christmas',   or  specific  dates.
WRKBUSCAL  then builds a  list of the 'excluded'  and 'included' dates.

In  the  documentation  and  commands,  'working  days'  are  known  as
'include days' and 'non-working days' are known as 'exclude days'.

The following commands are provided:

CRTBUSCAL     Creates a 'business calendar' (*USRSPC).

DLTBUSCAL     Deletes a 'business calendar'.

WRKBUSCAL     Defines  the days  to  be excluded  and generates  the
exclude   and   include   dates   in   the   'business
calendar'.

DSPBUSCAL     Displays the  attributes and  details of  a  'business
calendar'  object  including the  number  of  'include
days' between two dates.

RTVBUSCALA    Retrieves  the  attributes  of a  'business  calendar'
into CL variables.

CLCBUSCAL     Calculates  for either  'include' or  'exclude' days a
count  of  days   and  optionally  the   actual  dates
between two dates into CL variables.

CLCBUSCAL2    Calculates  a   count  of  'include'   days  and  time
between  two dates and  times.  It  returns values for
the  differences   in   days,  hours,   minutes,   and
seconds.

DSPENDDAY     Displays  the  last day  based  on  a start  date  and
number  of  days  for  either  'include' or  'exclude'
days.  DSPENDDAY answers  the question 'What day  will
a project finish  on if it requires n  working days?'.

CLCENDDAY     Calculates  the  end day  based  on a  start  date and
number  of  days  for  either  'include'  or 'exclude'
days.   This provides the  DSPENDDAY information  into
a variable for use in a CL program.

DSPSTRDAY     Displays  the start  day based  on an  end date  and a
number  of  days  for  either  'include'  or 'exclude'
days.  DSPSTRDAY answers  the question 'What day  must
a project start  on if the end date and  the number of
working days are known?'.

CLCSTRDAY     Calculates  the start day based  on an end  date and a
number of  days  for  either  'include'  or  'exclude'
days.   This provides  the DSPSTRDAY information  into
a variable for use in a CL program.

CHKBUSCALD    Checks a  date to see if it is  either an 'include' or
'exclude' date.

Getting started with the BUSCAL tool
------------------------------------

**   Use  CRTBUSCAL  to  create  a 'business  calendar'  object  in a
specific library.  In  the following example BUSCAL1  is created
in library ABC.

CRTBUSCAL     BUSCAL(ABC/BUSCAL1) TEXT(...)

A *USRSPC object of approximately 95,000 bytes is created.

**   Use WRKBUSCAL  to define the range  of years and the  days to be
excluded.     In   the  following  example,   Saturday,  Sunday,
Christmas, and 11/02/11  are excluded for a  year range of  2010
- 2012.

WRKBUSCAL     BUSCAL(ABC/BUSCAL1)
FROMYEAR(2010) TOYEAR(2012)
EXCLUDATE(*SAT *SUN *CHRISTMAS 11/02/11)

WRKBUSCAL generates the  'exclude dates' for the  range of years
specified.   It  then  generates all  of the  possible  dates as
potential 'include  dates' for  the same  years.   The  'exclude
dates' are then  read and the corresponding 'include  dates' are
deleted.    The two  sets  of  dates are  then  placed into  the
'business  calendar' object.   The  values you  entered (such as
*SAT) for  the  EXCLUDATE parameter  are  also placed  into  the

A day  of week value such  as *SAT generates  multiple dates per
year.   A value such as *CHRISTMAS  generates one date per year.
A value such as  02/02/11 generates a  single date.  When  using
a specific date, the  year of the date must  be within the range
of FROMYEAR/TOYEAR.

**   Use WRKBUSCAL again as:

WRKBUSCAL     BUSCAL(ABC/BUSCAL1)

and  press Enter.  The  values you specified  are extracted from
the 'business calendar' object  and placed on  the command by  a
prompt override program.

You can modify any  of the values such as adding  *NEWYEARS as a
new  date to  be excluded  (the command  prompter allows  you to
add  more entries  by placing  a +  sign in  one of the  list of
date values and pressing Enter).

When you change  any value, WRKBUSCAL re-calculates  the exclude
and include  dates and  updates the 'business  calendar' object.

**   Use DSPBUSCAL to see what exists:

DSPBUSCAL    BUSCAL(ABC/BUSCAL1)

The  values  you  specified  are  re-displayed  along  with  the
actual dates to be excluded and included.

**   DSPBUSCAL may  also be  used  to determine  the number  of  days
between two dates such as:

DSPBUSCAL    BUSCAL(ABC/BUSCAL1) FROMDATE(*TODAY)
TODATE(12/31/11)

The number of  'exclude' and 'include' dates  are described (the
last line of the listing has the 'include' count).

Note the  number of days displayed is  not a strict subtraction.
For example, if you  have excluded Saturday  and Sunday and  the
*MDY dates used are  FROMDATE = 11/02/11 and TODATE  = 11/11/11,
there  are 8  working  days.   This includes  both  11/02/11 and
11/12/11 and excludes Saturday 11/05/11 and Sunday 11/06/11.

**   The  CLCBUSCAL command returns  a count and  an optional list of
either  'exclude'  or   'include'  dates   within  a  range   of
specified dates.   Because  CLCBUSCAL returns variables,  it may
only be used in a CL program.

A typical command would be:

CLCBUSCAL    BUSCAL(ABC/BUSCAL1) TYPE(*INCLUDE)
FROMDATE(*TODAY) TODATE(12/31/09)
AVLCNT(&AVLCNT)

A  list  of up  to  1400 dates  may  be returned  with  a single
command.  The number  of dates available  may exceed 1400.   See
the CLCBUSCAL command for how to process more than 1400.

**   The RTVBUSCALA  command returns  the attributes  of a  'business
calendar'  object including the  total available  count for both
'exclude' and  'include' dates  within the  'business  calendar'
object.   Because RTVBUSCALA returns  variables, it may  only be
used in a CL program.

**   The  DSPENDDAY command  displays the  end  day for  the question
'What  is the end  day if the  start date and  number of days is
known?'.  A typical command would be:

DSPENDDAY    BUSCAL(ABC/BUSCAL1) NBROFDAYS(nn)
TYPE(*INCLUDE) FROMDATE(*TODAY)

A  listing would  be  displayed  describing the  calculated  end
date.

**   The CLCENDDAY  command provides the same  function as DSPENDDAY,
but  returns the end date  to a CL variable  for CL program use.

**   The DSPSTRDAY command  displays the start  day for the  question
'What is  the start day  if the end date  and number of  days is
known?'.  A typical command would be:

DSPSTRDAY    BUSCAL(ABC/BUSCAL1) NBROFDAYS(nn)
TYPE(*INCLUDE) FROMDATE(*TODAY)

A  listing would  be displayed  describing the  calculated start
date.

**   The CLCSTRDAY command provides  the same function as  DSPSTRDAY,
but returns  the  start date  to a  CL variable  for CL  program
use.

**   The  DLTBUSCAL command deletes  the 'business  calendar' object.
It will only delete a *USRSPC created by CRTBUSCAL.

**   The  CHKBUSCALD command will check a  date that it is either and
'include' or 'exclude'  date.   The default is  to check for  an
'include' date.

CHKBUSCALD   BUSCAL(ABC/BUSCAL1) DATE(nnnnnn)

An  escape message is  issued if  the date  in not  an 'include'
date.

BUSCAL *USRSPC layout
---------------------

The  CRTBUSCAL  command creates  a user  space  of about  95,000 bytes.
The DSPUSRSPC TAA Tool  may be used to display  the contents of a  user
space.   There is  no requirement  to directly  access the  information
from the  user space as the supplied commands will  do it for you.  The
user space layout is:

------

1  -    10     **BUSCAL**
12  -    15     From year
17  -    20     To year
22  -    28     Last change date
31  -    40     User who made last change
45  -    49     Available number of excludes
51  -    55     Available number of includes
61  -    65     Number of specified date command values

WRKBUSCAL exclude date values
-----------------------------

101  -  3700     WRKBUSCAL command dates (used by pmt ovr)

Each day is 12 bytes
12 x 300 = 3600

Exclude dates
-------------

10001  - 46000     Each entry is 10 bytes for 10 years max

10 x 10 x 366 = 36,600
Each entry is made up of

1 -  7  7 byte CYMD date

8 -  8  1 byte sequencing code - only
used internally

9 -  9  1 byte code for special day
See TAADAUIR4 for the arrays
that allow translation

10 - 10  1 byte code for day of week
See TAADAUIR4 for the arrays
that allow translation

Include dates
-------------

50001  - 86,600   Each entry is 10 bytes for 10 years max

10 x 10 x 366 = 36,600
Each entry is made up of

1 -  7  7 byte CYMD date

8 -  8  1 byte code for day of week
See TAADAUIR4 for the arrays
that allow translation

9 - 10  2 blanks

BUSCAL escape messages you can monitor for
------------------------------------------

Most of the  supplied commands  do not issue  escape messages  intended
to be monitored for.   Escape messages from based on  functions will be
re-sent.

Both  the CLCENDDAY  and  CLCSTRDAY command  will issue  TAA9891  if an
insufficient  number  of  days  exist with  the  data  available.   For
example,    if   CLCENDDAY    is    used   with    NBROFDAYS(30)    and
FROMDATE(12/12/10)  and only  the  year 2010  is  within the  'business
calendar',  there cannot be  30 include days  of data  in the 'business
calendar'.

The CHKBUSCALD command will  issued TAA9891 if the  date is not  within
the supported  calendar years  provided by the  calendar.   The TAA9892
message  is  issued  if  the  date  and  type  requested  (*INCLUDE  or
*EXCLUDE) is not valid.

CRTBUSCAL Command                                     *CMD
-----------------

BUSCAL        The qualified name of  the 'business calendar'  object
(*USRSPC)  to be  created.   The  library defaults  to
*CURLIB.

TEXT          The  text  description to  be  used.   The  default is
*BLANK meaning the text description will be blank.

DLTBUSCAL Command                                     *CMD
-----------------

BUSCAL        The  qualified name of  the 'business calendar' object
(*USRSPC) to  be  deleted.   The library  defaults  to
*LIBL.   A  specific library  or *CURLIB  may  also be
entered.

The   *USRSPC  object   must  have  been   created  by
CRTBUSCAL.

WRKBUSCAL Command                                     *CMD
-----------------

BUSCAL        The qualified name of  the 'business calendar'  object
(*USRSPC) to  be worked  with.   The library  defaults
to *LIBL.

A specific library or *CURLIB may also be entered.

The   *USRSPC  object   must  have  been   created  by
CRTBUSCAL.

After validating the  input parameters, the  'business
calendar' object  is locked  to an  *EXCL state  until
the updates are completed to the user space.

FROMYEAR      The  year to  begin  with  for both  the  excluded and
included  dates.   The year  must be  between 1940 and
2039.

TOYEAR        The  year  to end  with  for  both  the  excluded  and
included  dates.  The  year must  be between  1940 and
2039  and  must  be  greater  than  or  equal  to  the
FROMYEAR.

EXCLUDATE     A list  of up to  300 dates  or special  values to  be
excluded.   The default  is *NONE for  no dates  to be
excluded.

An  actual date  may  be entered  in job  format  or a
special value.   The  days of  the week  such as  *SAT
and  *SUN may  be  entered  or  special days  such  as
*NEWYEARS  and  *CHRISTMAS.   The  *THANKSGV value  is
the  US  Thanksgiving Day  (always  a Thursday).   The
*THANKSGV2 value  is the day  after Thanksgiving  Day.
See the command prompt for the special values.

A day  of week value  such as *SAT  generates multiple
dates   per  year.     A  value   such  as  *CHRISTMAS
generates  one  date  per  year.    A  value  such  as
02/02/07  generates  a  single  date.   When  using  a
specific  date, the  year of the  date must  be within
the range of FROMYEAR/TOYEAR.

The  'include'  dates  are  automatically   determined
based on the  FROMYEAR/TOYEAR values and  the excluded
dates.

DSPBUSCAL Command                                     *CMD
-----------------

BUSCAL        The qualified  name of the  'business calendar' object
(*USRSPC)   to  display  the   attributes  and  detail
information for.  The library defaults to *LIBL.

A specific library or *CURLIB may also be entered.

FROMDATE      The date  to begin  displaying from.   The default  is
*START  meaning  at the  starting  date  found in  the

A  specific  date  in  job  format  or  *TODAY may  be
specified.

TODATE        The date  to  end displaying  from.   The  default  is
*END meaning  the ending date  found in  the 'business
calendar'.

A  specific  date  in  job  format  or *TODAY  may  be
specified.

OUTPUT        How to output the results.

* is the default  to display the  spooled file if  the
command is  entered interactively.   The spooled  file
is deleted after it is displayed.

If  the  command  is entered  in  batch  or *PRINT  is
specified,  the spooled  file is  output and retained.

RTVBUSCALA Command                                    *CMD
------------------

BUSCAL        The qualified name  of the 'business calendar'  object
(*USRSPC) to  retrieve from.  The  library defaults to
*LIBL.

A specific library or *CURLIB may also be entered.

RTNLIB        The  library  where  the  'business  calendar'  object
exists.  This is an  optional return variable that  if
used must be specified as *CHAR LEN(10).

FROMYEAR      The 'From  Year' as specified  on WRKBUSCAL.   This is
an  optional  return  variable that  if  used  must be
specified as *CHAR LEN(4).

TOYEAR        The 'To Year' as specified  on WRKBUSCAL.  This is  an
optional  return  variable   that  if  used   must  be
specified as *CHAR LEN(4).

LSTCHGDATE    The last  change date when  using WRKBUSCAL.   This is
an  optional  return  variable that  if  used  must be
specified as  *CHAR LEN(7).   The  date will  be in  a
CYMD format.

LSTCHGUSR     The  user who  made the  last change  using WRKBUSCAL.
This  is  an  optional return  variable  that  if used
must be specified as *CHAR LEN(10).

TOTEXC        The total  number  of  exclude  dates.    This  is  an
optional  return   variable  that  if  used   must  be
specified as *DEC LEN(5 0).

Note  that   this  is  the  total  number  within  the
'business calendar'  object.   Use  the  DSPBUSCAL  or
CLCBUSCAL  commands  to  determine  how  many  exclude
days exist between two dates.

TOTINC        The  total  number  of  include  dates.   This  is  an
optional   return  variable  that   if  used  must  be
specified as *DEC LEN(5 0).

Note  that  this  is  the  total  number   within  the
'business  calendar' object.    Use  the DSPBUSCAL  or
CLCBUSCAL  commands  to  determine  how  many  include
days exist between two dates.

CMDDATCNT     The number of date  values specified on the  WRKBUSCAL
command.  Each  special value counts as  one date even
though   multiple   exclude   dates   may  have   been
generated  (such  as  *SAT).    This  is  an  optional
return  variable that  if used  must  be specified  as
*DEC LEN(5 0).

CMDDATES      The  list of  date values  specified on  the WRKBUSCAL
command.   Each special value  counts as one date even
though   multiple  exclude   dates   may   have   been
generated.   This is an optional  return variable that
if  used must be specified as  *CHAR LEN(3600).  Up to
300 dates will be returned.   Each entry has a  length
of 12.   Blanks will exist at  the end of the  list if
there are no more remaining entries.

OWNER         The  owner of  the 'business  calendar' object.   This
is an optional  return variable that  if used must  be
specified as *CHAR LEN(10).

TEXT          The  text  description  of   the  'business  calendar'
object.   This is an optional return  variable that if
used must be specified as *CHAR LEN(50).

CLCBUSCAL Command                                     *CMD
-----------------

BUSCAL        The  qualified name of  the 'business calendar' object
(*USRSPC)  to   be  retrieved  from.     The   library
defaults to *LIBL.

A specific library or *CURLIB may also be entered.

TYPE          The type of dates to retrieve.

*INCLUDE  is   the  default   for  the  dates   to  be
'included'.

*EXCLUDE  may   be  specified  for  the  dates  to  be
'excluded'.

FROMDATE      The date to  begin retrieving  from.   The default  is
*START  meaning at  the  starting  date found  in  the

A  specific  date  in  job  format  or *TODAY  may  be
specified.

TODATE        The date  to  end retrieving  from.   The  default  is
*END  meaning  at   the  ending  date  found   in  the

A  specific  date  in  job  format or  *TODAY  may  be
specified.

RTNLIB        The  library  where  the  'business  calendar'  object
exists.  This is  an optional return variable  that if
used must be specified as *CHAR LEN(10).

AVLCNT        The  available  number of  dates  that  exist for  the
type  between the  FROMDATE/TODATE  range.   Note that
in  some  cases  this  number  may  be   greater  than
RTNCNT.  This  is an optional return  variable that if
used must be specified as *DEC LEN(5 0).

If  both the FROMDATE  and TODATE dates  have the same
value, a count  of 1  will be  returned (assuming  the
date is within the TYPE specified).

RTNCNT        The  number of  dates  that will  be  returned in  the
DATES   parameter.    This   is  an   optional  return
variable  that  if  used  must  be  specified  as *DEC
LEN(5 0).

If you  do not want  the actual  dates from the  DATES
parameter, use the AVLCNT parameter.

It  is possible  that  the number  of  dates that  are
available   will  exceed   the  number  that   can  be
retrieved with a  single use of  CLCBUSCAL.  There  is
a maximum  of 1400 dates returned  on a single  use of
CLCBUSCAL.    You can  compare the  RTNCNT  value with
the AVLCNT  value to  determine if  more dates  exist.
If  the  available  count  value  exceeds  the  RTNCNT
value, see  the NXTDATE parameter for  a discussion of
how to access the additional dates.

DATES         A  list of up to 1400  dates in CYMD format (each date
is 7  bytes) found  for the  TYPE and  FROMDATE/TODATE
parameters.    This  is  an optional  return  variable
that if used must be specified as *CHAR LEN(9800).

It  is possible that  the number of dates  that can be
returned will exceed  the 1400  date limit.   See  the
NXTDATE parameter for  a discussion of how  to process

If  less that 1400  dates are  returned, the remaining
entries will be blank.

NXTDATE       The next date that is  available that will not fit  in
the date 1400 limit.   The field will be  blank if all
available   dates   fit   based   on  the   TYPE   and
FROMDATE/TODATE parameters.

If  a date exists, it will be  in job format.  You may
specify  the  value  in  the  FROMDATE   parameter  on
another  use  of  CLCBUSCAL.   Using  NXTDATE,  it  is
possible  to retrieve  all dates  that are  within the
'business  calendar'  object   by  multiple  uses   of
CLCBUSCAL.   If a range of  10 years is  requested, it
is  possible  that  either  list  will  contain up  to
3,660 dates.

CLCBUSCAL2 Command                                    *CMD
------------------

BUSCAL        The qualified name of  the 'business calendar'  object
(*USRSPC)  to   be  retrieved   from.    The   library
defaults to *LIBL.

A specific library or *CURLIB may also be entered.

BGNDAT        The  beginning date to  consider in  job format.   The
combination  of the BGNDAT/BGNTIM  values must be less
than  or equal  to  the combination  of  ENDDAT/ENDTIM
values.

BGNTIM        The beginning  time to consider in  HHMMSS format with
or without job time separators.

ENDDAT        The ending date to consider in job format.

ENDTIM        The  ending time to consider in  HHMMSS format with or
without job time separators.

RTNDAY        The number  of days  between the  begin date/time  and
the  end  date/time  based on  the  business  calendar
object  referenced.    Note  this  is  the  number  of
working days  minus 1.   Therefore  if the  begin  and
end date are the same, the RTNDAY will be 0.

A variable name  is required and must be  specified as
*DEC LEN(5 0).

RTNHOUR       The  number  of  hours  difference between  the  begin
date/time  and the end  date/time.  The  value will be
between 0 and 23.

A variable name is  required and must be specified  as
*DEC LEN(2 0).

RTNMINUTE     The  number of  minutes difference  between the  begin
date/time  and the end  date/time.  The  value will be
between 0 and 59.

A variable name is required  and must be specified  as
*DEC LEN(2 0).

RTNSECOND     The  number of  seconds difference  between the  begin
date/time  and the end  date/time.  The  value will be
between 0 and 59.

A variable name is required  and must be specified  as
*DEC LEN(2 0).

MSGOPTION     A *YES/*NO value  for whether messages should  be sent
describing  the  input and  return  values.   This  is
intended as a debugging option.

*NO is the default to not send messages.

*YES may be specified to send messages.

DSPENDDAY Command                                     *CMD
-----------------

BUSCAL        The  qualified name of  the 'business calendar' object
(*USRSPC) to  display from.   The library defaults  to
*LIBL.

A specific library or *CURLIB may also be entered.

NBROFDAYS     The number  of days  to add to  the FROMDATE  value to
determine   the   end   date   (the   TYPE   is   also
considered).

TYPE          The type of dates to retrieve.

*INCLUDE  is  the   default  for   the  dates  to   be
'included'.

*EXCLUDE  may  be  specified  for   the  dates  to  be
'excluded'.

FROMDATE      The  date to  begin displaying from.   The  default is
*TODAY meaning todays date.

A specific date  in job format  or *START (meaning  at
the  first date  in  the 'business  calendar'  object)
may be specified.

PRTDATES      Whether to list the detail dates.

*NO is the default.  Only the end date is listed.

*YES may be specified to list each date.

OUTPUT        How to output the results.

* is  the default to  display the spooled  file if the
command  is entered  interactively.   The spooled file
is deleted after it is displayed.

If the  command  is  entered  in batch  or  *PRINT  is
specified,  the spooled file  is output  and retained.

CLCENDDAY Command                                     *CMD
-----------------

BUSCAL        The  qualified name of  the 'business calendar' object
(*USRSPC) to retrieve from.   The library defaults  to
*LIBL.

A specific library or *CURLIB may also be entered.

NBROFDAYS     The number  of days  to add to  the FROMDATE  value to
determine   the   end   date   (the   TYPE   is   also
considered).

TYPE          The type of dates to retrieve.

*INCLUDE  is  the   default  for  the   dates  to   be
'included'.

*EXCLUDE  may  be  specified  for   the  dates  to  be
'excluded'.

FROMDATE      The  date to begin  retrieving from.   The  default is
*TODAY meaning the current date.

A  specific date in  job format or  *START (meaning at
the  the  first   date  in  the   'business  calendar'
object) may be specified.

ENDDAT        The end  date to  be returned.   The variable  will be
in  *CYMD  format  and  must  be  specified  as  *CHAR
LEN(7).

DSPSTRDAY Command                                     *CMD
-----------------

BUSCAL        The qualified name of  the 'business calendar'  object
(*USRSPC) to  display from.   The library  defaults to
*LIBL.

A specific library or *CURLIB may also be entered.

NBROFDAYS     The  number  of  days  to  subtract  from the  ENDDATE
value to determine  the start date  (the TYPE is  also
considered).

ENDDATE       The end date to  be used in providing the  start date.

A specific date in job format must be specified.

TYPE          The type of dates to retrieve.

*INCLUDE   is  the  default   for  the  dates   to  be
'included'.

*EXCLUDE   may  be  specified  for  the  dates  to  be
'excluded'.

PRTDATES      Whether to list the detail dates.

*NO is the default.  Only the end date is listed.

*YES may be specified to list each date.

OUTPUT        How to output the results.

* is the  default to display  the spooled file if  the
command  is entered interactively.   The  spooled file
is deleted after it is displayed.

If  the  command  is entered  in  batch  or  *PRINT is
specified, the spooled  file is  output and  retained.

CLCSTRDAY Command                                     *CMD
-----------------

BUSCAL        The qualified  name of the 'business  calendar' object
(*USRSPC)  to retrieve from.   The library defaults to
*LIBL.

A specific library or *CURLIB may also be entered.

NBROFDAYS     The number  of  days  to  subtract  from  the  ENDDATE
value to  determine the start  date (the TYPE  is also
considered).

ENDDATE       The end  date to be  used to help  determine the start
date.

A specific date in job format must be specified.

TYPE          The type of dates to retrieve.

*INCLUDE   is  the   default  for  the   dates  to  be
'included'.

*EXCLUDE  may  be  specified  for  the   dates  to  be
'excluded'.

STRDATE       The start date  to be returned.  The  variable will be
in  *CYMD  format  and  must  be  specified  as  *CHAR
LEN(7).

CHKBUSCALD Command                                    *CMD
------------------

BUSCAL        The qualified name of  the 'business calendar'  object
(*USRSPC)  to   be  retrieved   from.     The  library
defaults to *LIBL.

DATE          The date to be checked (enter in job format).

TAA9891  is sent as an  escape message if  the date is
not within the calendar supported years.

TAA9892 is  sent  as an  escape  message if  the  date
does not meet the TYPE specified.

TYPE          Either check  for an  'include' date  or an  'exclude'
date.    *INCLUDE is  the  default.   *EXCLUDE  may be
specified.

Restrictions
------------

None.

Prerequisites
-------------

The following TAA Tools must be on your system:

CHGUSRSPC       Change user space
CRTUSRSPC       Create user space
DUPTAADBF       Duplicate TAA data base file
EDTVAR          Edit variable
EXTLST2         Extract list 2
RTVDAT          Retrieve date
RTVCALDAYS      Retrieve calendar days
RTVEOMDAT       Retrieve end of month date
RTVHOLIDAY      Retrieve holiday
RTVSOMDAT       Retrieve start of month date
RTVSYSVAL3      Retrieve system value 3
RTVUSRSPC       Retrieve user space
SNDCOMPMSG      Send completion message
SNDESCINF       Send escape information
SNDESCMSG       Send escape message
SNDSTSMSG       Send status message

Implementation
--------------

None, the tool is ready to use.

Objects used by the tool
------------------------

Object        Type    Attribute      Src member    Src file
------        ----    ---------      ----------    ----------

WRKBUSCAL     *CMD                   TAADAUI       QATTCMD
CRTBUSCAL     *CMD                   TAADAUI2      QATTCMD
DLTBUSCAL     *CMD                   TAADAUI3      QATTCMD
DSPBUSCAL     *CMD                   TAADAUI4      QATTCMD
RTVBUSCALA    *CMD                   TAADAUI5      QATTCMD
CLCBUSCAL     *CMD                   TAADAUI6      QATTCMD
DSPENDDAY     *CMD                   TAADAUI7      QATTCMD
CLCENDDAY     *CMD                   TAADAUI8      QATTCMD
DSPSTRDAY     *CMD                   TAADAUI9      QATTCMD
CLCSTRDAY     *CMD                   TAADAUI10     QATTCMD
CLCBUSCAL2    *CMD                   TAADAUI11     QATTCMD
CHKBUSCALD    *CMD                   TAADAUI12     QATTCMD

The  TAADAUIP object is  duplicated from TAATOOL  during the processing
of WRKBUSCAL to hold the  'include dates'.  The object is  deleted when
the command completes.

Structure
---------

CRTBUSCAL   Cmd

DLTBUSCAL   Cmd

WRKBUSCAL   Cmd
TAADAUIC21  CL Pgm - Converts exclude dates
TAADAUIC22  CL Pgm - Converts include dates
TAADAUIC23 CL pgm is used for the prompt override

DSPBUSCAL   Cmd

RTVBUSCALA  Cmd

CLCBUSCAL   Cmd

CLCBUSCAL2  Cmd

DSPENDDAY   Cmd

CLCENDDAY   Cmd
TAADAUIR7  RPG pgm  - Same pgm as DSPENDDAY

DSPSTRDAY   Cmd