883 lines
70 KiB
COBOL
883 lines
70 KiB
COBOL
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
|