Annual calendar creation and review
The SEQQWAPL library has DATE members containing public holidays for some countries; you can use them to create variables containing dates for public holidays. For countries without DATE members, use VARDATE to create your own rules for public holidays.
The following example shows a sample job for creating public holidays in the calendar for the forthcoming year (CALNL).
//RUNWAPL EXEC EQQYXJPX,
// SUBSYS=WSJC
//SYSIN DD *
OPTIONS DBMODE(UPDATE)
VARDATE = YEAR(+1)
INCLUDE EQQFILE(DATENL)
CLSTART CALENDAR(CALNL) DESCR(NEDERLANDSE KALENDER)
CLDAY DAY(MONDAY) STATUS(W) DESCR(MAANDAG)
CLDAY DAY(TUESDAY) STATUS(W) DESCR(DINSDAG)
CLDAY DAY(WEDNESDAY) STATUS(W) DESCR(WOENSDAG)
CLDAY DAY(THURSDAY) STATUS(W) DESCR(DONDERDAG)
CLDAY DAY(FRIDAY) STATUS(W) DESCR(VRIJDAG)
CLDAY DAY(SATURDAY) STATUS(F) DESCR(ZATERDAG)
CLDAY DAY(SUNDAY) STATUS(F) DESCR(ZONDAG)
CLDATE DATE(!FD_GOEDE_VRIJDAG) STATUS(F) DESCR(GOEDE VRIJDAG)
CLDATE DATE(!FD_TWEEDE_PAASDAG) STATUS(F) DESCR(TWEEDE PAASDAG)
CLDATE DATE(!FD_KONINGINNEDAG) STATUS(F) DESCR(KONINGINNEDAG)
CLDATE DATE(!FD_HEMELVAARTSDAG) STATUS(F) DESCR(HEMELVAARTSDAG)
CLDATE DATE(!FD_TWEEDE_PINKSTERDAG) STATUS(F) DESCR(TWEEDE PINKSTERDAG)
CLDATE DATE(!FD_EERSTE_KERSTDAG) STATUS(F) DESCR(EERSTE KERSTDAG)
CLDATE DATE(!FD_TWEEDE_KERSTDAG) STATUS(F) DESCR(TWEEDE KERSTDAG)
//RUNWAPL EXEC EQQYXJPX,
// SUBSYS=WSJC
//OUTDATA DD DISP=SHR,DSN=ADCDMST.CZ.JCL(CALDATES)
//SYSIN DD *
OPTIONS FIELDSEP(,)
OUTPUT CLSD DATA(OUTDATA) FIELDS(CLSDDATE,CLSDDESC) LABEL(NONE)
SELECT CL CALENDAR(CALNL) SELECT(Y)
The flat file will contain all the dates contained within the calendar, for as many years as the calendar covers. You can use it with the EQQWXHTM WAPLEXEC to extract specific years and produce the HTML versions. Because the input file contains dates for 2 years, you can run 2 steps which can each concentrate on an individual year by use of the YEAR keyword.
//EXP2012 EXEC EQQYXJPX,
// ARGS='YEAR(2012)',
// CMD=EQQWXHTM,
// SUBSYS=WSJC
//OUTHTML DD DISP=SHR,DSN=ADCDMST.CZ.JCL(CAL2012)
//CLSDDATE DD DISP=SHR,DSN=ADCDMST.CZ.JCL(CALDATES)
//SYSIN DD *
DAYS(M D W D V Z Z)
MONTHS(JANUARI FEBRUARI MAART APRIL MEI JUNI
JULI AUGUSTUS SEPTEMBER OKTOBER NOVEMBER DECEMBER)
PROCESS(CLSDDATE) HILITE(gray-yellow)
/*
//EXP2013 EXEC EQQYXJPX,
// ARGS='YEAR(2013)',
// CMD=EQQWXHTM,
// SUBSYS=WSJC
//OUTHTML DD DISP=SHR,DSN=ADCDMST.CZ.JCL(CAL2013)
//CLSDDATE DD DISP=SHR,DSN=ADCDMST.CZ.JCL(CALDATES)
//SYSIN DD *
DAYS(M D W D V Z Z)
MONTHS(JANUARI FEBRUARI MAART APRIL MEI JUNI
JULI AUGUSTUS SEPTEMBER OKTOBER NOVEMBER DECEMBER)
PROCESS(CLSDDATE) HILITE(gray-yellow)
![The complete American calendar for year 2015](images/eqqwa_annual_calendar.jpg)