499 lines
39 KiB
COBOL
499 lines
39 KiB
COBOL
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
|