00001 IDENTIFICATION DIVISION. 12/21/24 00002 PROGRAM-ID. DTSBU003. DTSBU003 00003 AUTHOR. TRICOASTAL CONSULTING LTD. LV008 00004 DATE-WRITTEN. JULY 1994. DTSBU003 00005 DATE-COMPILED. DTSBU003 00006 SKIP3 DTSBU003 00007 ***** DTSBU003 00008 * DTSBU003 00009 * FUNCTION: WORK DAYS. DTSBU003 00010 * DTSBU003 00011 * DTSBU003 00012 * MODIFICATION LOG: DTSBU003 00013 * DTSBU003 00014 * 07/07/94 INITIAL DEVELOPMENT. DTSBU003 00015 * WORK ORDER: PROGRAMMER: RHC DTSBU003 00016 * DTSBU003 00017 * 07/26/1999 REVIEWED AND MODIFIED FOR DC. DTSBU003 00018 * REFERENCE: DC DEVELOPMENT PROGRAMMER: EHH DTSBU003 00019 * DTSBU003 00020 * DTSBU003 00021 * 02/08/2012 REVIEWED AND MODIFIED FOR DC HOLIDAY DTSBU003 00022 * EMNCIPATION DAY APRIL 16 DTSBU003 00023 * REFERENCE: DC DEVELOPMENT PROGRAMMER: ZL1 DTSBU003 00024 * DTSBU003 00025 * CL**2 00026 * 06/10/2022 REVIEWED AND MODIFIED FOR FEDERAL HOLIDAY CL**2 00027 * JUNETEENTH DAY JUNE 19 CL**2 00028 * REFERENCE: DC DEVELOPMENT PROGRAMMER: ZL1 CL**2 00029 * CL**2 00030 * MM/DD/YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DTSBU003 00031 * REFERENCE: XXXXXXXXXXXXXXX PROGRAMMER: XXX DTSBU003 00032 * DTSBU003 00033 * DTSBU003 00034 * DESCRIPTION: DTSBU003 00035 * DTSBU003 00036 * DETERMINE WHETHER A GIVEN DATE IS AN AGENCY WORK DAY. DTSBU003 00037 * DTSBU003 00038 ***** DTSBU003 00039 SKIP3 DTSBU003 00040 ENVIRONMENT DIVISION. DTSBU003 00041 INPUT-OUTPUT SECTION. DTSBU003 00042 DTSBU003 00043 FILE-CONTROL. DTSBU003 00044 SELECT HDAY-FILE ASSIGN TO DTS003F1. DTSBU003 00045 DTSBU003 00046 DATA DIVISION. DTSBU003 00047 DTSBU003 00048 FILE SECTION. DTSBU003 00049 FD HDAY-FILE DTSBU003 00050 RECORDING MODE IS F. DTSBU003 00051 01 HDAY-DATA PIC X(80). DTSBU003 00052 DTSBU003 00053 SKIP3 DTSBU003 00054 WORKING-STORAGE SECTION. DTSBU003 000545 77 PAN-VALET PICTURE X(24) VALUE '008DTSBU003 12/21/24'. DTSBU003 00055 77 PAN-VALET PICTURE X(24) VALUE '016DTSBU003 02/13/12'. DTSBU003 00056 SKIP3 DTSBU003 00057 01 WRK-AREA. DTSBU003 00058 05 WRK-HDAY-AREA. DTSBU003 00059 10 HDAY-YEAR PIC 9(04). DTSBU003 00060 10 FILLER PIC X(01) VALUE ','. DTSBU003 00061 10 HDAY-DAY-FILLER PIC X(24). DTSBU003 00062 10 HDAY-DAY PIC X(26). DTSBU003 00063 10 FILLER PIC X(01) VALUE ','. DTSBU003 00064 10 HDAY-DATE PIC X(10). DTSBU003 00065 10 FILLER2 PIC X(14). DTSBU003 00066 05 WRK-ABEND-CD PIC S9(04) COMP VALUE +003. DTSBU003 00067 DTSBU003 00068 05 WRK-MODULE-NAME PIC X(08) VALUE 'DTSBU003'. DTSBU003 00069 05 WRK-OPTION PIC X(01) VALUE SPACES. DTSBU003 00070 DTSBU003 00071 05 WRK-ABEND-MSG PIC X(60). DTSBU003 00072 SKIP3 DTSBU003 00073 05 FIRST-TIME-IND PIC X(01) VALUE 'Y'. DTSBU003 00074 SKIP3 DTSBU003 00075 05 HOLIDAY-AREA. DTSBU003 00076 10 HOLIDAY-YEAR PIC 9(04). DTSBU003 00077 DTSBU003 00078 10 HOLIDAYS-IN-YEAR. DTSBU003 00079 15 NEW-YEARS-DAY PIC S9(09) COMP-3. DTSBU003 00080 15 MARTIN-LUTHER-KING-DAY PIC S9(09) COMP-3. DTSBU003 00081 15 PRESIDENTS-DAY PIC S9(09) COMP-3. DTSBU003 00082 15 INAGURATION-DAY PIC S9(09) COMP-3. DTSBU003 00083 15 MEMORIAL-DAY PIC S9(09) COMP-3. DTSBU003 00084 15 JUNETEENTH-DAY PIC S9(09) COMP-3. CL**4 00085 15 INDEPENDENCE-DAY PIC S9(09) COMP-3. DTSBU003 00086 15 LABOR-DAY PIC S9(09) COMP-3. DTSBU003 00087 15 COLUMBUS-DAY PIC S9(09) COMP-3. DTSBU003 00088 15 VETERANS-DAY PIC S9(09) COMP-3. DTSBU003 00089 15 THANKSGIVING-DAY PIC S9(09) COMP-3. DTSBU003 00090 15 CHRISTMAS-EVE PIC S9(09) COMP-3. CL**6 00091 15 CHRISTMAS-DAY PIC S9(09) COMP-3. CL**6 00092 15 NEW-YEARS-EVE PIC S9(09) COMP-3. DTSBU003 00093 DTSBU003 00094 10 FILLER REDEFINES HOLIDAYS-IN-YEAR. DTSBU003 00095 15 HOLIDAY-DATE DTSBU003 00096 OCCURS 14 TIMES CL**6 00097 INDEXED BY HOLIDAY-IDX PIC S9(09) COMP-3. DTSBU003 00098 DTSBU003 00099 10 HOLIDAY-CNT PIC S9(04) COMP DTSBU003 00100 VALUE +14. CL**6 00101 SKIP3 DTSBU003 00102 05 WRK-RESULT PIC S9(05) COMP-3. DTSBU003 00103 DTSBU003 00104 05 WRK-REMAINDER PIC S9(05) COMP-3. DTSBU003 00105 EJECT DTSBU003 00106 01 L001-LINK-AREA. DTSBU003 00107 ++INCLUDE DTSIL001 DTSBU003 00108 EJECT DTSBU003 00109 01 L005-LINK-AREA. DTSBU003 00110 ++INCLUDE DTSIL005 DTSBU003 00111 EJECT DTSBU003 00112 LINKAGE SECTION. DTSBU003 00113 SKIP3 DTSBU003 00114 01 L003-LINK-AREA. DTSBU003 00115 ++INCLUDE DTSIL003 DTSBU003 00116 EJECT DTSBU003 00117 PROCEDURE DIVISION USING L003-LINK-AREA. DTSBU003 00118 DTSBU003 00119 DTSBU003 00120 IF L003-OPEN-FILE DTSBU003 00121 DISPLAY 'OPEN FILES FOR HOLIDAYS' DTSBU003 00122 MOVE '2' TO WRK-OPTION DTSBU003 00123 OPEN OUTPUT HDAY-FILE DTSBU003 00124 MOVE 'Y' TO FIRST-TIME-IND DTSBU003 00125 MOVE '1' TO L003-OPTION. DTSBU003 00126 DTSBU003 00127 IF FIRST-TIME-IND = 'Y' DTSBU003 00128 PERFORM I0000-INITIALIZE THRU I0000-EXIT DTSBU003 00129 MOVE 'N' TO FIRST-TIME-IND. DTSBU003 00130 DTSBU003 00131 DTSBU003 00132 IF L003-AGENCY-DAY DTSBU003 00133 PERFORM P0000-PROCESS THRU P0000-EXIT DTSBU003 00134 ELSE DTSBU003 00135 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00136 DTSBU003 00137 DTSBU003 00138 GOBACK. DTSBU003 00139 EJECT DTSBU003 00140 I0000-INITIALIZE. DTSBU003 00141 PERFORM S005-FROM-SYS THRU S005-EXIT. DTSBU003 00142 DTSBU003 00143 MOVE L005-DATE TO L001-FED-8-DATE-9. DTSBU003 00144 DTSBU003 00145 MOVE L001-FED-8-YR TO HOLIDAY-YEAR. DTSBU003 00146 DTSBU003 00147 PERFORM S1000-DETERMINE-HOLIDAYS THRU S1000-EXIT. DTSBU003 00148 DTSBU003 00149 PERFORM I1000-DISPLAY-HOLIDAYS THRU I1000-EXIT. DTSBU003 00150 DTSBU003 00151 MOVE L005-DATE TO L001-FED-8-DATE-9. DTSBU003 00152 DTSBU003 00153 MOVE L001-FED-8-YR TO HOLIDAY-YEAR. DTSBU003 00154 DTSBU003 00155 IF WRK-OPTION = '2' DTSBU003 00156 MOVE HOLIDAY-YEAR TO HDAY-YEAR DTSBU003 00157 PERFORM I1100-WRITE-HOLIDAYS THRU I1100-EXIT. DTSBU003 00158 DTSBU003 00159 ADD 1 TO HOLIDAY-YEAR. DTSBU003 00160 DTSBU003 00161 PERFORM S1000-DETERMINE-HOLIDAYS THRU S1000-EXIT. DTSBU003 00162 DTSBU003 00163 PERFORM DTSBU003 00164 8 TIMES DTSBU003 00165 DISPLAY ' ' DTSBU003 00166 END-PERFORM. DTSBU003 00167 DTSBU003 00168 PERFORM I1000-DISPLAY-HOLIDAYS THRU I1000-EXIT. DTSBU003 00169 I0000-EXIT. DTSBU003 00170 EXIT. DTSBU003 00171 I1000-DISPLAY-HOLIDAYS. DTSBU003 00172 DISPLAY '*** ' DTSBU003 00173 HOLIDAY-YEAR DTSBU003 00174 ' HOLIDAYS'. DTSBU003 00175 DTSBU003 00176 DISPLAY ' '. DTSBU003 00177 DTSBU003 00178 DTSBU003 00179 MOVE NEW-YEARS-DAY TO L001-FED-8-DATE-9. DTSBU003 00180 DTSBU003 00181 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00182 DTSBU003 00183 DISPLAY ' NEW YEARS DAY: ' DTSBU003 00184 L001-SLASH-8-DATE. DTSBU003 00185 DTSBU003 00186 DTSBU003 00187 MOVE MARTIN-LUTHER-KING-DAY TO L001-FED-8-DATE-9. DTSBU003 00188 DTSBU003 00189 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00190 DTSBU003 00191 DISPLAY ' MARTIN LUTHER KING DAY: ' DTSBU003 00192 L001-SLASH-8-DATE. DTSBU003 00193 DTSBU003 00194 DTSBU003 00195 MOVE INAGURATION-DAY TO L001-FED-8-DATE-9. DTSBU003 00196 DTSBU003 00197 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00198 DTSBU003 00199 DISPLAY ' INAGURATION DAY: ' DTSBU003 00200 L001-SLASH-8-DATE. DTSBU003 00201 DTSBU003 00202 DTSBU003 00203 MOVE PRESIDENTS-DAY TO L001-FED-8-DATE-9. DTSBU003 00204 DTSBU003 00205 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00206 DTSBU003 00207 DISPLAY ' PRESIDENTS DAY: ' DTSBU003 00208 L001-SLASH-8-DATE. DTSBU003 00209 DTSBU003 00210 DTSBU003 00211 MOVE MEMORIAL-DAY TO L001-FED-8-DATE-9. DTSBU003 00212 DTSBU003 00213 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00214 DTSBU003 00215 DISPLAY ' MEMORIAL DAY: ' DTSBU003 00216 L001-SLASH-8-DATE. DTSBU003 00217 DTSBU003 00218 CL**3 00219 MOVE JUNETEENTH-DAY TO L001-FED-8-DATE-9. CL**3 00220 CL**3 00221 PERFORM S001-FROM-FED-8 THRU S001-EXIT. CL**3 00222 CL**3 00223 DISPLAY ' JUNETEENTH DAY: ' CL**3 00224 L001-SLASH-8-DATE. CL**3 00225 CL**3 00226 DTSBU003 00227 MOVE INDEPENDENCE-DAY TO L001-FED-8-DATE-9. DTSBU003 00228 DTSBU003 00229 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00230 DTSBU003 00231 DISPLAY ' INDEPENDENCE DAY: ' DTSBU003 00232 L001-SLASH-8-DATE. DTSBU003 00233 DTSBU003 00234 DTSBU003 00235 MOVE LABOR-DAY TO L001-FED-8-DATE-9. DTSBU003 00236 DTSBU003 00237 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00238 DTSBU003 00239 DISPLAY ' LABOR DAY: ' DTSBU003 00240 L001-SLASH-8-DATE. DTSBU003 00241 DTSBU003 00242 DTSBU003 00243 MOVE COLUMBUS-DAY TO L001-FED-8-DATE-9. DTSBU003 00244 DTSBU003 00245 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00246 DTSBU003 00247 DISPLAY ' COLUMBUS DAY: ' DTSBU003 00248 L001-SLASH-8-DATE. DTSBU003 00249 DTSBU003 00250 DTSBU003 00251 MOVE VETERANS-DAY TO L001-FED-8-DATE-9. DTSBU003 00252 DTSBU003 00253 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00254 DTSBU003 00255 DISPLAY ' VETERANS DAY: ' DTSBU003 00256 L001-SLASH-8-DATE. DTSBU003 00257 DTSBU003 00258 DTSBU003 00259 MOVE THANKSGIVING-DAY TO L001-FED-8-DATE-9. DTSBU003 00260 DTSBU003 00261 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00262 DTSBU003 00263 DISPLAY ' THANKSGIVING DAY: ' DTSBU003 00264 L001-SLASH-8-DATE. DTSBU003 00265 DTSBU003 00266 DTSBU003 00267 MOVE CHRISTMAS-EVE TO L001-FED-8-DATE-9. CL**8 00268 DTSBU003 00269 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00270 DTSBU003 00271 DISPLAY ' CHRISTMAS EVE: ' CL**8 00272 L001-SLASH-8-DATE. DTSBU003 00273 DTSBU003 00274 CL**6 00275 MOVE CHRISTMAS-DAY TO L001-FED-8-DATE-9. CL**8 00276 CL**6 00277 PERFORM S001-FROM-FED-8 THRU S001-EXIT. CL**6 00278 CL**6 00279 DISPLAY ' CHRISTMAS DAY: ' CL**8 00280 L001-SLASH-8-DATE. CL**6 00281 CL**6 00282 DTSBU003 00283 MOVE NEW-YEARS-EVE TO L001-FED-8-DATE-9. DTSBU003 00284 DTSBU003 00285 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00286 DTSBU003 00287 DISPLAY ' NEW YEARS EVE: ' DTSBU003 00288 L001-SLASH-8-DATE. DTSBU003 00289 DTSBU003 00290 DTSBU003 00291 DISPLAY ' '. DTSBU003 00292 DTSBU003 00293 DISPLAY '*** IF ANY OF THE ABOVE DATES ARE NOT CORRECT, ' DTSBU003 00294 'CONTACT UI TAX PROGRAMMER IMMEDIATELY.'. DTSBU003 00295 I1000-EXIT. DTSBU003 00296 EXIT. DTSBU003 00297 EJECT DTSBU003 00298 I1100-WRITE-HOLIDAYS. DTSBU003 00299 MOVE SPACES TO HDAY-DAY-FILLER FILLER2. DTSBU003 00300 MOVE NEW-YEARS-DAY TO L001-FED-8-DATE-9. DTSBU003 00301 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00302 MOVE ' NEW YEARS DAY' TO HDAY-DAY DTSBU003 00303 MOVE L001-SLASH-8-DATE TO HDAY-DATE. DTSBU003 00304 WRITE HDAY-DATA FROM WRK-HDAY-AREA. DTSBU003 00305 DTSBU003 00306 MOVE MARTIN-LUTHER-KING-DAY TO L001-FED-8-DATE-9. DTSBU003 00307 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00308 MOVE ' MARTIN LUTHER KING DAY' TO HDAY-DAY. DTSBU003 00309 MOVE L001-SLASH-8-DATE TO HDAY-DATE. DTSBU003 00310 WRITE HDAY-DATA FROM WRK-HDAY-AREA. DTSBU003 00311 DTSBU003 00312 MOVE INAGURATION-DAY TO L001-FED-8-DATE-9. DTSBU003 00313 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00314 MOVE ' INAGURATION DAY' TO HDAY-DAY. DTSBU003 00315 MOVE L001-SLASH-8-DATE TO HDAY-DATE. DTSBU003 00316 IF HDAY-DATE = '0000000000' DTSBU003 00317 MOVE SPACES TO HDAY-DATE. DTSBU003 00318 WRITE HDAY-DATA FROM WRK-HDAY-AREA. DTSBU003 00319 DTSBU003 00320 MOVE PRESIDENTS-DAY TO L001-FED-8-DATE-9. DTSBU003 00321 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00322 MOVE ' PRESIDENTS DAY' TO HDAY-DAY. DTSBU003 00323 MOVE L001-SLASH-8-DATE TO HDAY-DATE. DTSBU003 00324 WRITE HDAY-DATA FROM WRK-HDAY-AREA. DTSBU003 00325 DTSBU003 00326 MOVE MEMORIAL-DAY TO L001-FED-8-DATE-9. DTSBU003 00327 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00328 MOVE ' MEMORIAL DAY' TO HDAY-DAY. DTSBU003 00329 MOVE L001-SLASH-8-DATE TO HDAY-DATE. DTSBU003 00330 WRITE HDAY-DATA FROM WRK-HDAY-AREA. DTSBU003 00331 DTSBU003 00332 CL**3 00333 MOVE JUNETEENTH-DAY TO L001-FED-8-DATE-9. CL**3 00334 PERFORM S001-FROM-FED-8 THRU S001-EXIT. CL**3 00335 MOVE ' JUNETEENTH DAY' TO HDAY-DAY. CL**3 00336 MOVE L001-SLASH-8-DATE TO HDAY-DATE. CL**3 00337 WRITE HDAY-DATA FROM WRK-HDAY-AREA. CL**3 00338 CL**3 00339 DTSBU003 00340 MOVE INDEPENDENCE-DAY TO L001-FED-8-DATE-9. DTSBU003 00341 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00342 MOVE ' INDEPENDENCE DAY' TO HDAY-DAY. DTSBU003 00343 MOVE L001-SLASH-8-DATE TO HDAY-DATE. DTSBU003 00344 WRITE HDAY-DATA FROM WRK-HDAY-AREA. DTSBU003 00345 DTSBU003 00346 DTSBU003 00347 MOVE LABOR-DAY TO L001-FED-8-DATE-9. DTSBU003 00348 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00349 MOVE ' LABOR DAY' TO HDAY-DAY. DTSBU003 00350 MOVE L001-SLASH-8-DATE TO HDAY-DATE. DTSBU003 00351 WRITE HDAY-DATA FROM WRK-HDAY-AREA. DTSBU003 00352 DTSBU003 00353 DTSBU003 00354 MOVE COLUMBUS-DAY TO L001-FED-8-DATE-9. DTSBU003 00355 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00356 MOVE ' COLUMBUS DAY' TO HDAY-DAY. DTSBU003 00357 MOVE L001-SLASH-8-DATE TO HDAY-DATE. DTSBU003 00358 WRITE HDAY-DATA FROM WRK-HDAY-AREA. DTSBU003 00359 DTSBU003 00360 DTSBU003 00361 MOVE VETERANS-DAY TO L001-FED-8-DATE-9. DTSBU003 00362 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00363 MOVE ' VETERANS DAY' TO HDAY-DAY. DTSBU003 00364 MOVE L001-SLASH-8-DATE TO HDAY-DATE. DTSBU003 00365 WRITE HDAY-DATA FROM WRK-HDAY-AREA. DTSBU003 00366 DTSBU003 00367 DTSBU003 00368 MOVE THANKSGIVING-DAY TO L001-FED-8-DATE-9. DTSBU003 00369 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00370 MOVE ' THANKSGIVING DAY' TO HDAY-DAY. DTSBU003 00371 MOVE L001-SLASH-8-DATE TO HDAY-DATE. DTSBU003 00372 WRITE HDAY-DATA FROM WRK-HDAY-AREA. DTSBU003 00373 DTSBU003 00374 DTSBU003 00375 MOVE CHRISTMAS-EVE TO L001-FED-8-DATE-9. CL**6 00376 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00377 MOVE ' CHRISTMAS EVE' TO HDAY-DAY. CL**6 00378 MOVE L001-SLASH-8-DATE TO HDAY-DATE. DTSBU003 00379 WRITE HDAY-DATA FROM WRK-HDAY-AREA. DTSBU003 00380 DTSBU003 00381 CL**6 00382 MOVE CHRISTMAS-DAY TO L001-FED-8-DATE-9. CL**6 00383 PERFORM S001-FROM-FED-8 THRU S001-EXIT. CL**6 00384 MOVE ' CHRISTMAS DAY' TO HDAY-DAY. CL**6 00385 MOVE L001-SLASH-8-DATE TO HDAY-DATE. CL**6 00386 WRITE HDAY-DATA FROM WRK-HDAY-AREA. CL**6 00387 CL**6 00388 DTSBU003 00389 MOVE NEW-YEARS-EVE TO L001-FED-8-DATE-9. DTSBU003 00390 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00391 MOVE ' NEW YEARS EVE' TO HDAY-DAY. DTSBU003 00392 MOVE L001-SLASH-8-DATE TO HDAY-DATE. DTSBU003 00393 IF HDAY-DATE = '0000000000' DTSBU003 00394 MOVE SPACES TO HDAY-DATE. DTSBU003 00395 WRITE HDAY-DATA FROM WRK-HDAY-AREA. DTSBU003 00396 CLOSE HDAY-FILE. DTSBU003 00397 I1100-EXIT. DTSBU003 00398 EXIT. DTSBU003 00399 EJECT DTSBU003 00400 P0000-PROCESS. DTSBU003 00401 MOVE L003-DATE TO L001-FED-8-DATE-9. DTSBU003 00402 DTSBU003 00403 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00404 DTSBU003 00405 IF L001-INVALID-DATE DTSBU003 00406 MOVE 'L003-DATE IS NOT A VALID DATE' DTSBU003 00407 TO WRK-ABEND-MSG DTSBU003 00408 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00409 DTSBU003 00410 DTSBU003 00411 IF L001-SATURDAY OR L001-SUNDAY DTSBU003 00412 SET L003-NOT-WORK-DAY TO TRUE DTSBU003 00413 ELSE DTSBU003 00414 SET L003-IS-WORK-DAY TO TRUE DTSBU003 00415 PERFORM P1000-CHECK-FOR-HOLIDAY THRU P1000-EXIT. DTSBU003 00416 P0000-EXIT. DTSBU003 00417 EXIT. DTSBU003 00418 EJECT DTSBU003 00419 P1000-CHECK-FOR-HOLIDAY. DTSBU003 00420 MOVE L003-DATE TO L001-FED-8-DATE-9. DTSBU003 00421 DTSBU003 00422 IF L001-FED-8-YR = HOLIDAY-YEAR DTSBU003 00423 NEXT SENTENCE DTSBU003 00424 ELSE DTSBU003 00425 MOVE L001-FED-8-YR TO HOLIDAY-YEAR DTSBU003 00426 PERFORM S1000-DETERMINE-HOLIDAYS THRU S1000-EXIT. DTSBU003 00427 DTSBU003 00428 PERFORM DTSBU003 00429 VARYING HOLIDAY-IDX FROM 1 BY 1 DTSBU003 00430 UNTIL HOLIDAY-IDX > HOLIDAY-CNT DTSBU003 00431 IF HOLIDAY-DATE (HOLIDAY-IDX) = L003-DATE DTSBU003 00432 SET L003-NOT-WORK-DAY TO TRUE DTSBU003 00433 END-IF DTSBU003 00434 END-PERFORM. DTSBU003 00435 P1000-EXIT. DTSBU003 00436 EXIT. DTSBU003 00437 EJECT DTSBU003 00438 S1000-DETERMINE-HOLIDAYS. DTSBU003 00439 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSBU003 00440 DTSBU003 00441 MOVE 01 TO L001-FED-8-MO. DTSBU003 00442 DTSBU003 00443 MOVE 01 TO L001-FED-8-DA. DTSBU003 00444 DTSBU003 00445 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00446 DTSBU003 00447 IF L001-INVALID-DATE DTSBU003 00448 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:001' DTSBU003 00449 TO WRK-ABEND-MSG DTSBU003 00450 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00451 DTSBU003 00452 IF L001-SUNDAY DTSBU003 00453 MOVE 02 TO L001-FED-8-DA DTSBU003 00454 MOVE L001-FED-8-DATE-9 DTSBU003 00455 TO NEW-YEARS-DAY DTSBU003 00456 ELSE DTSBU003 00457 IF L001-SATURDAY DTSBU003 00458 MOVE 0 TO NEW-YEARS-DAY DTSBU003 00459 ELSE DTSBU003 00460 MOVE L001-FED-8-DATE-9 TO NEW-YEARS-DAY. DTSBU003 00461 DTSBU003 00462 DTSBU003 00463 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSBU003 00464 DTSBU003 00465 MOVE 01 TO L001-FED-8-MO. DTSBU003 00466 DTSBU003 00467 MOVE 21 TO L001-FED-8-DA. DTSBU003 00468 DTSBU003 00469 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00470 DTSBU003 00471 IF L001-INVALID-DATE DTSBU003 00472 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:002' DTSBU003 00473 TO WRK-ABEND-MSG DTSBU003 00474 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00475 DTSBU003 00476 IF L001-MONDAY DTSBU003 00477 NEXT SENTENCE DTSBU003 00478 ELSE DTSBU003 00479 IF L001-SUNDAY DTSBU003 00480 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY - 6 DTSBU003 00481 ELSE DTSBU003 00482 COMPUTE L001-JUL-ABS-DAY DTSBU003 00483 = L001-JUL-ABS-DAY - (L001-DAY-OF-WEEK - 2). DTSBU003 00484 DTSBU003 00485 PERFORM S001-FROM-ABS-DAY THRU S001-EXIT. DTSBU003 00486 DTSBU003 00487 IF L001-INVALID-DATE DTSBU003 00488 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:003' DTSBU003 00489 TO WRK-ABEND-MSG DTSBU003 00490 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00491 DTSBU003 00492 MOVE L001-FED-8-DATE-9 TO MARTIN-LUTHER-KING-DAY. DTSBU003 00493 DTSBU003 00494 DTSBU003 00495 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSBU003 00496 DTSBU003 00497 MOVE 01 TO L001-FED-8-MO. DTSBU003 00498 DTSBU003 00499 MOVE 20 TO L001-FED-8-DA. DTSBU003 00500 DTSBU003 00501 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00502 DTSBU003 00503 IF L001-INVALID-DATE DTSBU003 00504 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:004' DTSBU003 00505 TO WRK-ABEND-MSG DTSBU003 00506 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00507 DTSBU003 00508 DIVIDE L001-FED-8-YR BY 4 DTSBU003 00509 GIVING WRK-RESULT DTSBU003 00510 REMAINDER WRK-REMAINDER. DTSBU003 00511 DTSBU003 00512 IF (WRK-REMAINDER NOT = 1) DTSBU003 00513 OR DTSBU003 00514 (L001-SATURDAY) DTSBU003 00515 OR DTSBU003 00516 (L001-SUNDAY) DTSBU003 00517 OR DTSBU003 00518 (L001-FED-8-DATE-9 = MARTIN-LUTHER-KING-DAY) DTSBU003 00519 MOVE +0 TO INAGURATION-DAY DTSBU003 00520 ELSE DTSBU003 00521 MOVE L001-FED-8-DATE-9 TO INAGURATION-DAY. DTSBU003 00522 DTSBU003 00523 DTSBU003 00524 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSBU003 00525 DTSBU003 00526 MOVE 02 TO L001-FED-8-MO. DTSBU003 00527 DTSBU003 00528 MOVE 01 TO L001-FED-8-DA. DTSBU003 00529 DTSBU003 00530 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00531 DTSBU003 00532 IF L001-INVALID-DATE DTSBU003 00533 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:005' DTSBU003 00534 TO WRK-ABEND-MSG DTSBU003 00535 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00536 DTSBU003 00537 IF L001-DAY-OF-WEEK < 3 DTSBU003 00538 COMPUTE L001-JUL-ABS-DAY DTSBU003 00539 = L001-JUL-ABS-DAY + 16 - L001-DAY-OF-WEEK DTSBU003 00540 ELSE DTSBU003 00541 COMPUTE L001-JUL-ABS-DAY DTSBU003 00542 = L001-JUL-ABS-DAY + 23 - L001-DAY-OF-WEEK. DTSBU003 00543 DTSBU003 00544 PERFORM S001-FROM-ABS-DAY THRU S001-EXIT. DTSBU003 00545 DTSBU003 00546 IF L001-INVALID-DATE DTSBU003 00547 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:006' DTSBU003 00548 TO WRK-ABEND-MSG DTSBU003 00549 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00550 DTSBU003 00551 MOVE L001-FED-8-DATE-9 TO PRESIDENTS-DAY. DTSBU003 00552 DTSBU003 00553 DTSBU003 00554 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSBU003 00555 DTSBU003 00556 MOVE 05 TO L001-FED-8-MO. DTSBU003 00557 DTSBU003 00558 MOVE 31 TO L001-FED-8-DA. DTSBU003 00559 DTSBU003 00560 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00561 DTSBU003 00562 IF L001-INVALID-DATE DTSBU003 00563 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:007' DTSBU003 00564 TO WRK-ABEND-MSG DTSBU003 00565 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00566 DTSBU003 00567 IF L001-MONDAY DTSBU003 00568 NEXT SENTENCE DTSBU003 00569 ELSE DTSBU003 00570 IF L001-SUNDAY DTSBU003 00571 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY - 6 DTSBU003 00572 ELSE DTSBU003 00573 COMPUTE L001-JUL-ABS-DAY DTSBU003 00574 = L001-JUL-ABS-DAY - (L001-DAY-OF-WEEK - 2). DTSBU003 00575 DTSBU003 00576 PERFORM S001-FROM-ABS-DAY THRU S001-EXIT. DTSBU003 00577 DTSBU003 00578 IF L001-INVALID-DATE DTSBU003 00579 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:008' DTSBU003 00580 TO WRK-ABEND-MSG DTSBU003 00581 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00582 DTSBU003 00583 MOVE L001-FED-8-DATE-9 TO MEMORIAL-DAY. DTSBU003 00584 DTSBU003 00585 CL**2 00586 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. CL**2 00587 CL**2 00588 MOVE 06 TO L001-FED-8-MO. CL**2 00589 CL**2 00590 MOVE 19 TO L001-FED-8-DA. CL**2 00591 CL**2 00592 PERFORM S001-FROM-FED-8 THRU S001-EXIT. CL**2 00593 CL**2 00594 IF L001-INVALID-DATE CL**2 00595 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:007' CL**2 00596 TO WRK-ABEND-MSG CL**2 00597 PERFORM S999-ABEND THRU S999-EXIT. CL**2 00598 CL**2 00599 CL**2 00600 IF L001-SUNDAY CL**2 00601 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY + 1 CL**2 00602 ELSE CL**2 00603 IF L001-SATURDAY CL**2 00604 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY - 1. CL**2 00605 CL**2 00606 CL**2 00607 PERFORM S001-FROM-ABS-DAY THRU S001-EXIT. CL**2 00608 CL**2 00609 IF L001-INVALID-DATE CL**2 00610 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:008' CL**2 00611 TO WRK-ABEND-MSG CL**2 00612 PERFORM S999-ABEND THRU S999-EXIT. CL**2 00613 CL**2 00614 MOVE L001-FED-8-DATE-9 TO JUNETEENTH-DAY. CL**5 00615 CL**2 00616 CL**2 00617 DTSBU003 00618 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSBU003 00619 DTSBU003 00620 MOVE 07 TO L001-FED-8-MO. DTSBU003 00621 DTSBU003 00622 MOVE 04 TO L001-FED-8-DA. DTSBU003 00623 DTSBU003 00624 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00625 DTSBU003 00626 IF L001-INVALID-DATE DTSBU003 00627 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:009' DTSBU003 00628 TO WRK-ABEND-MSG DTSBU003 00629 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00630 DTSBU003 00631 IF L001-SUNDAY DTSBU003 00632 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY + 1 DTSBU003 00633 ELSE DTSBU003 00634 IF L001-SATURDAY DTSBU003 00635 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY - 1. DTSBU003 00636 DTSBU003 00637 PERFORM S001-FROM-ABS-DAY THRU S001-EXIT. DTSBU003 00638 DTSBU003 00639 IF L001-INVALID-DATE DTSBU003 00640 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:010' DTSBU003 00641 TO WRK-ABEND-MSG DTSBU003 00642 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00643 DTSBU003 00644 MOVE L001-FED-8-DATE-9 TO INDEPENDENCE-DAY. DTSBU003 00645 DTSBU003 00646 DTSBU003 00647 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSBU003 00648 DTSBU003 00649 MOVE 09 TO L001-FED-8-MO. DTSBU003 00650 DTSBU003 00651 MOVE 01 TO L001-FED-8-DA. DTSBU003 00652 DTSBU003 00653 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00654 DTSBU003 00655 IF L001-INVALID-DATE DTSBU003 00656 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:011' DTSBU003 00657 TO WRK-ABEND-MSG DTSBU003 00658 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00659 DTSBU003 00660 IF L001-DAY-OF-WEEK < 3 DTSBU003 00661 COMPUTE L001-JUL-ABS-DAY DTSBU003 00662 = L001-JUL-ABS-DAY + 2 - L001-DAY-OF-WEEK DTSBU003 00663 ELSE DTSBU003 00664 COMPUTE L001-JUL-ABS-DAY DTSBU003 00665 = L001-JUL-ABS-DAY + 9 - L001-DAY-OF-WEEK. DTSBU003 00666 DTSBU003 00667 PERFORM S001-FROM-ABS-DAY THRU S001-EXIT. DTSBU003 00668 DTSBU003 00669 IF L001-INVALID-DATE DTSBU003 00670 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:012' DTSBU003 00671 TO WRK-ABEND-MSG DTSBU003 00672 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00673 DTSBU003 00674 MOVE L001-FED-8-DATE-9 TO LABOR-DAY. DTSBU003 00675 DTSBU003 00676 DTSBU003 00677 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSBU003 00678 DTSBU003 00679 MOVE 10 TO L001-FED-8-MO. DTSBU003 00680 DTSBU003 00681 MOVE 01 TO L001-FED-8-DA. DTSBU003 00682 DTSBU003 00683 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00684 DTSBU003 00685 IF L001-INVALID-DATE DTSBU003 00686 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:013' DTSBU003 00687 TO WRK-ABEND-MSG DTSBU003 00688 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00689 DTSBU003 00690 IF L001-DAY-OF-WEEK < 3 DTSBU003 00691 COMPUTE L001-JUL-ABS-DAY DTSBU003 00692 = L001-JUL-ABS-DAY + 9 - L001-DAY-OF-WEEK DTSBU003 00693 ELSE DTSBU003 00694 COMPUTE L001-JUL-ABS-DAY DTSBU003 00695 = L001-JUL-ABS-DAY + 16 - L001-DAY-OF-WEEK. DTSBU003 00696 DTSBU003 00697 PERFORM S001-FROM-ABS-DAY THRU S001-EXIT. DTSBU003 00698 DTSBU003 00699 IF L001-INVALID-DATE DTSBU003 00700 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:012' DTSBU003 00701 TO WRK-ABEND-MSG DTSBU003 00702 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00703 DTSBU003 00704 MOVE L001-FED-8-DATE-9 TO COLUMBUS-DAY. DTSBU003 00705 DTSBU003 00706 DTSBU003 00707 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSBU003 00708 DTSBU003 00709 MOVE 11 TO L001-FED-8-MO. DTSBU003 00710 DTSBU003 00711 MOVE 11 TO L001-FED-8-DA. DTSBU003 00712 DTSBU003 00713 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00714 DTSBU003 00715 IF L001-INVALID-DATE DTSBU003 00716 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:014' DTSBU003 00717 TO WRK-ABEND-MSG DTSBU003 00718 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00719 DTSBU003 00720 IF L001-SUNDAY DTSBU003 00721 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY + 1 DTSBU003 00722 ELSE DTSBU003 00723 IF L001-SATURDAY DTSBU003 00724 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY - 1. DTSBU003 00725 DTSBU003 00726 PERFORM S001-FROM-ABS-DAY THRU S001-EXIT. DTSBU003 00727 DTSBU003 00728 IF L001-INVALID-DATE DTSBU003 00729 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:015' DTSBU003 00730 TO WRK-ABEND-MSG DTSBU003 00731 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00732 DTSBU003 00733 MOVE L001-FED-8-DATE-9 TO VETERANS-DAY. DTSBU003 00734 DTSBU003 00735 DTSBU003 00736 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSBU003 00737 DTSBU003 00738 MOVE 11 TO L001-FED-8-MO. DTSBU003 00739 DTSBU003 00740 MOVE 01 TO L001-FED-8-DA. DTSBU003 00741 DTSBU003 00742 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00743 DTSBU003 00744 IF L001-INVALID-DATE DTSBU003 00745 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:016' DTSBU003 00746 TO WRK-ABEND-MSG DTSBU003 00747 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00748 DTSBU003 00749 IF L001-DAY-OF-WEEK < 6 DTSBU003 00750 COMPUTE L001-JUL-ABS-DAY DTSBU003 00751 = L001-JUL-ABS-DAY + 26 - L001-DAY-OF-WEEK DTSBU003 00752 ELSE DTSBU003 00753 COMPUTE L001-JUL-ABS-DAY DTSBU003 00754 = L001-JUL-ABS-DAY + 33 - L001-DAY-OF-WEEK. DTSBU003 00755 DTSBU003 00756 PERFORM S001-FROM-ABS-DAY THRU S001-EXIT. DTSBU003 00757 DTSBU003 00758 IF L001-INVALID-DATE DTSBU003 00759 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:017' DTSBU003 00760 TO WRK-ABEND-MSG DTSBU003 00761 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00762 DTSBU003 00763 MOVE L001-FED-8-DATE-9 TO THANKSGIVING-DAY. DTSBU003 00764 DTSBU003 00765 *CHRISTMAS EVE 2024 - FED HOLIDAY ZL1 CL**7 00766 CL**7 00767 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSBU003 00768 DTSBU003 00769 MOVE 12 TO L001-FED-8-MO. DTSBU003 00770 DTSBU003 00771 MOVE 24 TO L001-FED-8-DA. CL**7 00772 DTSBU003 00773 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00774 DTSBU003 00775 IF L001-INVALID-DATE DTSBU003 00776 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:018' DTSBU003 00777 TO WRK-ABEND-MSG DTSBU003 00778 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00779 DTSBU003 00780 IF L001-SUNDAY DTSBU003 00781 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY + 1 DTSBU003 00782 ELSE DTSBU003 00783 IF L001-SATURDAY DTSBU003 00784 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY - 1. DTSBU003 00785 DTSBU003 00786 PERFORM S001-FROM-ABS-DAY THRU S001-EXIT. DTSBU003 00787 DTSBU003 00788 IF L001-INVALID-DATE DTSBU003 00789 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:019' DTSBU003 00790 TO WRK-ABEND-MSG DTSBU003 00791 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00792 DTSBU003 00793 MOVE L001-FED-8-DATE-9 TO CHRISTMAS-EVE. CL**7 00794 DTSBU003 00795 DTSBU003 00796 CL**7 00797 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. CL**7 00798 CL**7 00799 MOVE 12 TO L001-FED-8-MO. CL**7 00800 CL**7 00801 MOVE 25 TO L001-FED-8-DA. CL**7 00802 CL**7 00803 PERFORM S001-FROM-FED-8 THRU S001-EXIT. CL**7 00804 CL**7 00805 IF L001-INVALID-DATE CL**7 00806 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:018' CL**7 00807 TO WRK-ABEND-MSG CL**7 00808 PERFORM S999-ABEND THRU S999-EXIT. CL**7 00809 CL**7 00810 IF L001-SUNDAY CL**7 00811 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY + 1 CL**7 00812 ELSE CL**7 00813 IF L001-SATURDAY CL**7 00814 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY - 1. CL**7 00815 CL**7 00816 PERFORM S001-FROM-ABS-DAY THRU S001-EXIT. CL**7 00817 CL**7 00818 IF L001-INVALID-DATE CL**7 00819 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:019' CL**7 00820 TO WRK-ABEND-MSG CL**7 00821 PERFORM S999-ABEND THRU S999-EXIT. CL**7 00822 CL**7 00823 MOVE L001-FED-8-DATE-9 TO CHRISTMAS-DAY. CL**7 00824 CL**7 00825 CL**7 00826 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSBU003 00827 DTSBU003 00828 ADD +1 TO L001-FED-8-YR. DTSBU003 00829 DTSBU003 00830 MOVE 01 TO L001-FED-8-MO. DTSBU003 00831 DTSBU003 00832 MOVE 01 TO L001-FED-8-DA. DTSBU003 00833 DTSBU003 00834 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSBU003 00835 DTSBU003 00836 IF L001-INVALID-DATE DTSBU003 00837 MOVE 'UNEXPECTED L001-INVALID-DATE AT S1000:020' DTSBU003 00838 TO WRK-ABEND-MSG DTSBU003 00839 PERFORM S999-ABEND THRU S999-EXIT. DTSBU003 00840 DTSBU003 00841 IF L001-SATURDAY DTSBU003 00842 MOVE HOLIDAY-YEAR TO L001-FED-8-YR DTSBU003 00843 MOVE 12 TO L001-FED-8-MO DTSBU003 00844 MOVE 31 TO L001-FED-8-DA DTSBU003 00845 MOVE L001-FED-8-DATE-9 TO NEW-YEARS-EVE DTSBU003 00846 ELSE DTSBU003 00847 MOVE +0 TO NEW-YEARS-EVE. DTSBU003 00848 S1000-EXIT. DTSBU003 00849 EXIT. DTSBU003 00850 EJECT DTSBU003 00851 S001-FROM-FED-8. DTSBU003 00852 SET L001-FROM-FED-8 TO TRUE. DTSBU003 00853 GO TO S001-DATE-CONVERT. DTSBU003 00854 DTSBU003 00855 S001-FROM-ABS-DAY. DTSBU003 00856 SET L001-FROM-ABS-DAY TO TRUE. DTSBU003 00857 GO TO S001-DATE-CONVERT. DTSBU003 00858 DTSBU003 00859 S001-DATE-CONVERT. DTSBU003 00860 CALL 'DTSBU001' USING L001-LINK-AREA. DTSBU003 00861 S001-EXIT. DTSBU003 00862 EXIT. DTSBU003 00863 SKIP3 DTSBU003 00864 S005-FROM-SYS. DTSBU003 00865 SET L005-FROM-SYS TO TRUE. DTSBU003 00866 GO TO S005-ABSTIME. DTSBU003 00867 DTSBU003 00868 S005-ABSTIME. DTSBU003 00869 CALL 'DTSBU005' USING L005-LINK-AREA. DTSBU003 00870 S005-EXIT. DTSBU003 00871 EXIT. DTSBU003 00872 SKIP3 DTSBU003 00873 S999-ABEND. DTSBU003 00874 DISPLAY '*** ' DTSBU003 00875 WRK-MODULE-NAME DTSBU003 00876 ' IS ABENDING: ' DTSBU003 00877 WRK-ABEND-MSG. DTSBU003 00878 DTSBU003 00879 CALL 'DTSBU999' USING WRK-ABEND-CD. DTSBU003 00880 S999-EXIT. DTSBU003 00881 EXIT. DTSBU003