00001 IDENTIFICATION DIVISION. 03/12/12 00002 PROGRAM-ID. DTSCU003. DTSCU003 00003 AUTHOR. NGC. LV003 00004 DATE-WRITTEN. NOVEMBER 2009. DTSCU003 00005 DATE-COMPILED. DTSCU003 00006 SKIP3 DTSCU003 00007 ***** DTSCU003 00008 * DTSCU003 00009 * FUNCTION: WORK DAYS. DTSCU003 00010 * DTSCU003 00011 * DTSCU003 00012 * MODIFICATION LOG: DTSCU003 00013 * DTSCU003 00014 * 11/25/2009 INITIAL DEVELOPMENT - CLONED FROM DTSBU003. DTSCU003 00015 * WORK ORDER: PROGRAMMER: GD DTSCU003 00016 * DTSCU003 00017 * MM/DD/YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DTSCU003 00018 * REFERENCE: XXXXXXXXXXXXXXX PROGRAMMER: XXX DTSCU003 00019 * DTSCU003 00020 * DTSCU003 00021 * DESCRIPTION: DTSCU003 00022 * DTSCU003 00023 * DETERMINE WHETHER A GIVEN DATE IS AN AGENCY WORK DAY. DTSCU003 00024 * DTSCU003 00025 ***** DTSCU003 00026 SKIP3 DTSCU003 00027 ENVIRONMENT DIVISION. DTSCU003 00028 SKIP3 DTSCU003 00029 DATA DIVISION. DTSCU003 00030 SKIP3 DTSCU003 00031 WORKING-STORAGE SECTION. DTSCU003 000315 77 PAN-VALET PICTURE X(24) VALUE '003DTSCU003 03/12/12'. DTSCU003 00032 SKIP3 DTSCU003 00033 01 WRK-AREA. DTSCU003 00034 05 WRK-ABEND-CD PIC X(04) VALUE 'U003'. DTSCU003 00035 DTSCU003 00036 05 HOLIDAY-AREA. DTSCU003 00037 10 HOLIDAY-YEAR PIC 9(04). DTSCU003 00038 DTSCU003 00039 10 HOLIDAYS-IN-YEAR. DTSCU003 00040 15 NEW-YEARS-DAY PIC S9(09) COMP-3. DTSCU003 00041 15 MARTIN-LUTHER-KING-DAY PIC S9(09) COMP-3. DTSCU003 00042 15 PRESIDENTS-DAY PIC S9(09) COMP-3. DTSCU003 00043 15 INAGURATION-DAY PIC S9(09) COMP-3. DTSCU003 00044 15 MEMORIAL-DAY PIC S9(09) COMP-3. DTSCU003 00045 15 INDEPENDENCE-DAY PIC S9(09) COMP-3. DTSCU003 00046 15 LABOR-DAY PIC S9(09) COMP-3. DTSCU003 00047 15 COLUMBUS-DAY PIC S9(09) COMP-3. DTSCU003 00048 15 VETERANS-DAY PIC S9(09) COMP-3. DTSCU003 00049 15 THANKSGIVING-DAY PIC S9(09) COMP-3. DTSCU003 00050 15 CHRISTMAS-DAY PIC S9(09) COMP-3. DTSCU003 00051 15 NEW-YEARS-EVE PIC S9(09) COMP-3. DTSCU003 00052 DTSCU003 00053 10 FILLER REDEFINES HOLIDAYS-IN-YEAR. DTSCU003 00054 15 HOLIDAY-DATE DTSCU003 00055 OCCURS 12 TIMES DTSCU003 00056 INDEXED BY HOLIDAY-IDX PIC S9(09) COMP-3. DTSCU003 00057 DTSCU003 00058 10 HOLIDAY-CNT PIC S9(04) COMP DTSCU003 00059 VALUE +12. DTSCU003 00060 DTSCU003 00061 05 WRK-RESULT PIC S9(05) COMP-3. DTSCU003 00062 DTSCU003 00063 05 WRK-REMAINDER PIC S9(05) COMP-3. DTSCU003 00064 EJECT DTSCU003 00065 01 L001-LINK-AREA. DTSCU003 00066 ++INCLUDE DTSIL001 DTSCU003 00067 EJECT DTSCU003 00068 01 L005-LINK-AREA. DTSCU003 00069 ++INCLUDE DTSIL005 DTSCU003 00070 EJECT DTSCU003 00071 LINKAGE SECTION. DTSCU003 00072 SKIP3 DTSCU003 00073 01 DFHCOMMAREA. DTSCU003 00074 ++INCLUDE DTSIL003 DTSCU003 00075 EJECT DTSCU003 00076 PROCEDURE DIVISION. DTSCU003 00077 DTSCU003 00078 PERFORM I0000-INITIALIZE THRU I0000-EXIT. DTSCU003 00079 DTSCU003 00080 IF L003-AGENCY-DAY DTSCU003 00081 PERFORM P0000-PROCESS THRU P0000-EXIT DTSCU003 00082 ELSE DTSCU003 00083 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00084 END-IF. DTSCU003 00085 DTSCU003 00086 GOBACK. DTSCU003 00087 EJECT DTSCU003 00088 I0000-INITIALIZE. DTSCU003 00089 MOVE L003-DATE TO L001-FED-8-DATE-9. DTSCU003 00090 DTSCU003 00091 MOVE L001-FED-8-YR TO HOLIDAY-YEAR. DTSCU003 00092 DTSCU003 00093 PERFORM S1000-DETERMINE-HOLIDAYS THRU S1000-EXIT. DTSCU003 00094 DTSCU003 00095 DTSCU003 00096 I0000-EXIT. DTSCU003 00097 EXIT. DTSCU003 00098 EJECT DTSCU003 00099 P0000-PROCESS. DTSCU003 00100 MOVE L003-DATE TO L001-FED-8-DATE-9. DTSCU003 00101 DTSCU003 00102 SET L001-FROM-FED-8 TO TRUE. DTSCU003 00103 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00104 DTSCU003 00105 IF L001-INVALID-DATE DTSCU003 00106 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00107 END-IF. DTSCU003 00108 DTSCU003 00109 IF L001-SATURDAY OR L001-SUNDAY DTSCU003 00110 SET L003-NOT-WORK-DAY TO TRUE DTSCU003 00111 ELSE DTSCU003 00112 SET L003-IS-WORK-DAY TO TRUE DTSCU003 00113 PERFORM P1000-CHECK-FOR-HOLIDAY THRU P1000-EXIT DTSCU003 00114 END-IF. DTSCU003 00115 DTSCU003 00116 P0000-EXIT. DTSCU003 00117 EXIT. DTSCU003 00118 DTSCU003 00119 P1000-CHECK-FOR-HOLIDAY. DTSCU003 00120 MOVE L003-DATE TO L001-FED-8-DATE-9. DTSCU003 00121 DTSCU003 00122 IF L001-FED-8-YR = HOLIDAY-YEAR DTSCU003 00123 NEXT SENTENCE DTSCU003 00124 ELSE DTSCU003 00125 MOVE L001-FED-8-YR TO HOLIDAY-YEAR DTSCU003 00126 PERFORM S1000-DETERMINE-HOLIDAYS THRU S1000-EXIT. DTSCU003 00127 DTSCU003 00128 PERFORM DTSCU003 00129 VARYING HOLIDAY-IDX FROM 1 BY 1 DTSCU003 00130 UNTIL HOLIDAY-IDX > HOLIDAY-CNT DTSCU003 00131 IF HOLIDAY-DATE (HOLIDAY-IDX) = L003-DATE DTSCU003 00132 SET L003-NOT-WORK-DAY TO TRUE DTSCU003 00133 END-IF DTSCU003 00134 END-PERFORM. DTSCU003 00135 P1000-EXIT. DTSCU003 00136 EXIT. DTSCU003 00137 EJECT DTSCU003 00138 S1000-DETERMINE-HOLIDAYS. DTSCU003 00139 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSCU003 00140 DTSCU003 00141 MOVE 01 TO L001-FED-8-MO. DTSCU003 00142 DTSCU003 00143 MOVE 01 TO L001-FED-8-DA. DTSCU003 00144 DTSCU003 00145 SET L001-FROM-FED-8 TO TRUE. DTSCU003 00146 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00147 DTSCU003 00148 IF L001-INVALID-DATE DTSCU003 00149 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00150 END-IF. DTSCU003 00151 DTSCU003 00152 IF L001-SUNDAY DTSCU003 00153 MOVE 02 TO L001-FED-8-DA DTSCU003 00154 MOVE L001-FED-8-DATE-9 TO NEW-YEARS-DAY DTSCU003 00155 ELSE DTSCU003 00156 IF L001-SATURDAY DTSCU003 00157 MOVE 0 TO NEW-YEARS-DAY DTSCU003 00158 ELSE DTSCU003 00159 MOVE L001-FED-8-DATE-9 TO NEW-YEARS-DAY DTSCU003 00160 END-IF DTSCU003 00161 END-IF. DTSCU003 00162 DTSCU003 00163 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSCU003 00164 DTSCU003 00165 MOVE 01 TO L001-FED-8-MO. DTSCU003 00166 DTSCU003 00167 MOVE 21 TO L001-FED-8-DA. DTSCU003 00168 DTSCU003 00169 SET L001-FROM-FED-8 TO TRUE. DTSCU003 00170 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00171 DTSCU003 00172 IF L001-INVALID-DATE DTSCU003 00173 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00174 END-IF. DTSCU003 00175 DTSCU003 00176 IF L001-MONDAY DTSCU003 00177 NEXT SENTENCE DTSCU003 00178 ELSE DTSCU003 00179 IF L001-SUNDAY DTSCU003 00180 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY - 6 DTSCU003 00181 ELSE DTSCU003 00182 COMPUTE L001-JUL-ABS-DAY DTSCU003 00183 = L001-JUL-ABS-DAY - (L001-DAY-OF-WEEK - 2) DTSCU003 00184 END-IF. DTSCU003 00185 DTSCU003 00186 SET L001-FROM-ABS-DAY TO TRUE. DTSCU003 00187 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00188 DTSCU003 00189 IF L001-INVALID-DATE DTSCU003 00190 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00191 END-IF. DTSCU003 00192 DTSCU003 00193 MOVE L001-FED-8-DATE-9 TO MARTIN-LUTHER-KING-DAY. DTSCU003 00194 DTSCU003 00195 DTSCU003 00196 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSCU003 00197 DTSCU003 00198 MOVE 01 TO L001-FED-8-MO. DTSCU003 00199 DTSCU003 00200 MOVE 20 TO L001-FED-8-DA. DTSCU003 00201 DTSCU003 00202 SET L001-FROM-FED-8 TO TRUE. DTSCU003 00203 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00204 DTSCU003 00205 IF L001-INVALID-DATE DTSCU003 00206 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00207 END-IF. DTSCU003 00208 DTSCU003 00209 DIVIDE L001-FED-8-YR BY 4 DTSCU003 00210 GIVING WRK-RESULT DTSCU003 00211 REMAINDER WRK-REMAINDER. DTSCU003 00212 DTSCU003 00213 IF (WRK-REMAINDER NOT = 1) DTSCU003 00214 OR DTSCU003 00215 (L001-SATURDAY) DTSCU003 00216 OR DTSCU003 00217 (L001-SUNDAY) DTSCU003 00218 OR DTSCU003 00219 (L001-FED-8-DATE-9 = MARTIN-LUTHER-KING-DAY) DTSCU003 00220 MOVE +0 TO INAGURATION-DAY DTSCU003 00221 ELSE DTSCU003 00222 MOVE L001-FED-8-DATE-9 TO INAGURATION-DAY DTSCU003 00223 END-IF. DTSCU003 00224 DTSCU003 00225 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSCU003 00226 DTSCU003 00227 MOVE 02 TO L001-FED-8-MO. DTSCU003 00228 DTSCU003 00229 MOVE 01 TO L001-FED-8-DA. DTSCU003 00230 DTSCU003 00231 SET L001-FROM-FED-8 TO TRUE. DTSCU003 00232 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00233 DTSCU003 00234 IF L001-INVALID-DATE DTSCU003 00235 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00236 END-IF. DTSCU003 00237 DTSCU003 00238 IF L001-DAY-OF-WEEK < 3 DTSCU003 00239 COMPUTE L001-JUL-ABS-DAY DTSCU003 00240 = L001-JUL-ABS-DAY + 16 - L001-DAY-OF-WEEK DTSCU003 00241 ELSE DTSCU003 00242 COMPUTE L001-JUL-ABS-DAY DTSCU003 00243 = L001-JUL-ABS-DAY + 23 - L001-DAY-OF-WEEK. DTSCU003 00244 DTSCU003 00245 SET L001-FROM-ABS-DAY TO TRUE. DTSCU003 00246 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00247 DTSCU003 00248 IF L001-INVALID-DATE DTSCU003 00249 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00250 END-IF. DTSCU003 00251 DTSCU003 00252 MOVE L001-FED-8-DATE-9 TO PRESIDENTS-DAY. DTSCU003 00253 DTSCU003 00254 DTSCU003 00255 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSCU003 00256 DTSCU003 00257 MOVE 05 TO L001-FED-8-MO. DTSCU003 00258 DTSCU003 00259 MOVE 31 TO L001-FED-8-DA. DTSCU003 00260 DTSCU003 00261 SET L001-FROM-FED-8 TO TRUE. DTSCU003 00262 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00263 DTSCU003 00264 IF L001-INVALID-DATE DTSCU003 00265 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00266 END-IF. DTSCU003 00267 DTSCU003 00268 IF L001-MONDAY DTSCU003 00269 NEXT SENTENCE DTSCU003 00270 ELSE DTSCU003 00271 IF L001-SUNDAY DTSCU003 00272 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY - 6 DTSCU003 00273 ELSE DTSCU003 00274 COMPUTE L001-JUL-ABS-DAY DTSCU003 00275 = L001-JUL-ABS-DAY - (L001-DAY-OF-WEEK - 2). DTSCU003 00276 DTSCU003 00277 SET L001-FROM-ABS-DAY TO TRUE. DTSCU003 00278 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00279 DTSCU003 00280 IF L001-INVALID-DATE DTSCU003 00281 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00282 END-IF. DTSCU003 00283 DTSCU003 00284 MOVE L001-FED-8-DATE-9 TO MEMORIAL-DAY. DTSCU003 00285 DTSCU003 00286 DTSCU003 00287 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSCU003 00288 DTSCU003 00289 MOVE 07 TO L001-FED-8-MO. DTSCU003 00290 DTSCU003 00291 MOVE 04 TO L001-FED-8-DA. DTSCU003 00292 DTSCU003 00293 SET L001-FROM-FED-8 TO TRUE. DTSCU003 00294 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00295 DTSCU003 00296 IF L001-INVALID-DATE DTSCU003 00297 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00298 END-IF. DTSCU003 00299 DTSCU003 00300 IF L001-SUNDAY DTSCU003 00301 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY + 1 DTSCU003 00302 ELSE DTSCU003 00303 IF L001-SATURDAY DTSCU003 00304 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY - 1. DTSCU003 00305 DTSCU003 00306 SET L001-FROM-ABS-DAY TO TRUE. DTSCU003 00307 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00308 DTSCU003 00309 IF L001-INVALID-DATE DTSCU003 00310 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00311 END-IF. DTSCU003 00312 DTSCU003 00313 MOVE L001-FED-8-DATE-9 TO INDEPENDENCE-DAY. DTSCU003 00314 DTSCU003 00315 DTSCU003 00316 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSCU003 00317 DTSCU003 00318 MOVE 09 TO L001-FED-8-MO. DTSCU003 00319 DTSCU003 00320 MOVE 01 TO L001-FED-8-DA. DTSCU003 00321 DTSCU003 00322 SET L001-FROM-FED-8 TO TRUE. DTSCU003 00323 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00324 DTSCU003 00325 IF L001-INVALID-DATE DTSCU003 00326 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00327 END-IF. DTSCU003 00328 DTSCU003 00329 IF L001-DAY-OF-WEEK < 3 DTSCU003 00330 COMPUTE L001-JUL-ABS-DAY DTSCU003 00331 = L001-JUL-ABS-DAY + 2 - L001-DAY-OF-WEEK DTSCU003 00332 ELSE DTSCU003 00333 COMPUTE L001-JUL-ABS-DAY DTSCU003 00334 = L001-JUL-ABS-DAY + 9 - L001-DAY-OF-WEEK. DTSCU003 00335 DTSCU003 00336 SET L001-FROM-ABS-DAY TO TRUE. DTSCU003 00337 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00338 DTSCU003 00339 IF L001-INVALID-DATE DTSCU003 00340 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00341 END-IF. DTSCU003 00342 DTSCU003 00343 MOVE L001-FED-8-DATE-9 TO LABOR-DAY. DTSCU003 00344 DTSCU003 00345 DTSCU003 00346 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSCU003 00347 DTSCU003 00348 MOVE 10 TO L001-FED-8-MO. DTSCU003 00349 DTSCU003 00350 MOVE 01 TO L001-FED-8-DA. DTSCU003 00351 DTSCU003 00352 SET L001-FROM-FED-8 TO TRUE. DTSCU003 00353 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00354 DTSCU003 00355 IF L001-INVALID-DATE DTSCU003 00356 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00357 END-IF. DTSCU003 00358 DTSCU003 00359 IF L001-DAY-OF-WEEK < 3 DTSCU003 00360 COMPUTE L001-JUL-ABS-DAY DTSCU003 00361 = L001-JUL-ABS-DAY + 9 - L001-DAY-OF-WEEK DTSCU003 00362 ELSE DTSCU003 00363 COMPUTE L001-JUL-ABS-DAY DTSCU003 00364 = L001-JUL-ABS-DAY + 16 - L001-DAY-OF-WEEK. DTSCU003 00365 DTSCU003 00366 SET L001-FROM-ABS-DAY TO TRUE. DTSCU003 00367 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00368 DTSCU003 00369 IF L001-INVALID-DATE DTSCU003 00370 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00371 END-IF. DTSCU003 00372 DTSCU003 00373 MOVE L001-FED-8-DATE-9 TO COLUMBUS-DAY. DTSCU003 00374 DTSCU003 00375 DTSCU003 00376 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSCU003 00377 DTSCU003 00378 MOVE 11 TO L001-FED-8-MO. DTSCU003 00379 DTSCU003 00380 MOVE 11 TO L001-FED-8-DA. DTSCU003 00381 DTSCU003 00382 SET L001-FROM-FED-8 TO TRUE. DTSCU003 00383 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00384 DTSCU003 00385 IF L001-INVALID-DATE DTSCU003 00386 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00387 END-IF. DTSCU003 00388 DTSCU003 00389 IF L001-SUNDAY DTSCU003 00390 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY + 1 DTSCU003 00391 ELSE DTSCU003 00392 IF L001-SATURDAY DTSCU003 00393 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY - 1. DTSCU003 00394 DTSCU003 00395 SET L001-FROM-ABS-DAY TO TRUE. DTSCU003 00396 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00397 DTSCU003 00398 IF L001-INVALID-DATE DTSCU003 00399 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00400 END-IF. DTSCU003 00401 DTSCU003 00402 MOVE L001-FED-8-DATE-9 TO VETERANS-DAY. DTSCU003 00403 DTSCU003 00404 DTSCU003 00405 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSCU003 00406 DTSCU003 00407 MOVE 11 TO L001-FED-8-MO. DTSCU003 00408 DTSCU003 00409 MOVE 01 TO L001-FED-8-DA. DTSCU003 00410 DTSCU003 00411 SET L001-FROM-FED-8 TO TRUE. DTSCU003 00412 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00413 DTSCU003 00414 IF L001-INVALID-DATE DTSCU003 00415 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00416 END-IF. DTSCU003 00417 DTSCU003 00418 IF L001-DAY-OF-WEEK < 6 DTSCU003 00419 COMPUTE L001-JUL-ABS-DAY DTSCU003 00420 = L001-JUL-ABS-DAY + 26 - L001-DAY-OF-WEEK DTSCU003 00421 ELSE DTSCU003 00422 COMPUTE L001-JUL-ABS-DAY DTSCU003 00423 = L001-JUL-ABS-DAY + 33 - L001-DAY-OF-WEEK. DTSCU003 00424 DTSCU003 00425 SET L001-FROM-ABS-DAY TO TRUE. DTSCU003 00426 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00427 DTSCU003 00428 IF L001-INVALID-DATE DTSCU003 00429 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00430 END-IF. DTSCU003 00431 DTSCU003 00432 MOVE L001-FED-8-DATE-9 TO THANKSGIVING-DAY. DTSCU003 00433 DTSCU003 00434 DTSCU003 00435 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSCU003 00436 DTSCU003 00437 MOVE 12 TO L001-FED-8-MO. DTSCU003 00438 DTSCU003 00439 MOVE 25 TO L001-FED-8-DA. DTSCU003 00440 DTSCU003 00441 SET L001-FROM-FED-8 TO TRUE. DTSCU003 00442 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00443 DTSCU003 00444 IF L001-INVALID-DATE DTSCU003 00445 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00446 END-IF. DTSCU003 00447 DTSCU003 00448 IF L001-SUNDAY DTSCU003 00449 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY + 1 DTSCU003 00450 ELSE DTSCU003 00451 IF L001-SATURDAY DTSCU003 00452 COMPUTE L001-JUL-ABS-DAY = L001-JUL-ABS-DAY - 1. DTSCU003 00453 DTSCU003 00454 SET L001-FROM-ABS-DAY TO TRUE. DTSCU003 00455 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00456 DTSCU003 00457 IF L001-INVALID-DATE DTSCU003 00458 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00459 END-IF. DTSCU003 00460 DTSCU003 00461 MOVE L001-FED-8-DATE-9 TO CHRISTMAS-DAY. DTSCU003 00462 DTSCU003 00463 DTSCU003 00464 MOVE HOLIDAY-YEAR TO L001-FED-8-YR. DTSCU003 00465 DTSCU003 00466 ADD +1 TO L001-FED-8-YR. DTSCU003 00467 DTSCU003 00468 MOVE 01 TO L001-FED-8-MO. DTSCU003 00469 DTSCU003 00470 MOVE 01 TO L001-FED-8-DA. DTSCU003 00471 DTSCU003 00472 SET L001-FROM-FED-8 TO TRUE. DTSCU003 00473 PERFORM S001-DATE-CONVERT THRU S001-EXIT. DTSCU003 00474 DTSCU003 00475 IF L001-INVALID-DATE DTSCU003 00476 EXEC CICS ABEND ABCODE (WRK-ABEND-CD) END-EXEC DTSCU003 00477 END-IF. DTSCU003 00478 DTSCU003 00479 IF L001-SATURDAY DTSCU003 00480 MOVE HOLIDAY-YEAR TO L001-FED-8-YR DTSCU003 00481 MOVE 12 TO L001-FED-8-MO DTSCU003 00482 MOVE 31 TO L001-FED-8-DA DTSCU003 00483 MOVE L001-FED-8-DATE-9 TO NEW-YEARS-EVE DTSCU003 00484 ELSE DTSCU003 00485 MOVE +0 TO NEW-YEARS-EVE. DTSCU003 00486 S1000-EXIT. DTSCU003 00487 EXIT. DTSCU003 00488 DTSCU003 00489 S001-DATE-CONVERT. DTSCU003 00490 EXEC CICS DTSCU003 00491 LINK DTSCU003 00492 PROGRAM ('DTSCU001') DTSCU003 00493 COMMAREA (L001-LINK-AREA) DTSCU003 00494 END-EXEC. DTSCU003 00495 DTSCU003 00496 S001-EXIT. DTSCU003 00497 EXIT. DTSCU003