IDENTIFICATIONIDENTIFICATIONDIVISION *
.. * DATE-WRITTEN. 04/10/89java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 * * MODIFIED 12/26/95. * 07/31/97. * 10/18/97. * * ******************************* * * * * * Judson D. McClendon * * * Sun Valley Systems * * * 329 37th Court N.E. * * * Birmingham, AL 35215 * * * 205-853-8440 * * * * * ******************************* * ENVIRONMENTDIVISION 7 WS-ANSWER X(1 SPACE * CONFIGURATIONSECTION *
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 7 * FILE-CONTROL. * I-O-CONTROL. * DATADIVISION. * * * FILE. * WORKING-STORAGESECTION. * ****************************************************************** * * * 7 7 ' S * * * ****************************************************************** *
77 WS-ANSWER PIC0SH-WORK-DAY 92.
77 WS-ESCAPE-FLAG PIC 9(01) VALUE 0. * ****************************************************************** * * 03 SH-WORK-YYYYMMDD-ALPHA REDEFINES SH-WORK-YYYYMMDD. * * ****************************************************************** *
01 SCREEN-HOLD-AREA05 SH-WORK-MM 9(2.
03 SH-EDIT-DATE PIC X(08) VALUESPACES. *
03 03 SH-JUL-DATE PIC 9(07) VALUE 0.
3 REDEFINESjava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
05 SH-WORK-MONTH 05 SH-WORK-MONTH 0 PIC90)VALUE .
05 SH-WORK-DAY 9(2.
05 05 SH-BEG-MM02) *
03 SH-WORK-YYYYMMDD REDEFINES.
0 REDEFINES.
0 SH-WORK-YYYYPIC4)
05 SH-WORK-MM05SH-END-DD 90)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
05 SH-WORK-DD PIC 9(02). *
03 SH-JUL-DATE PIC 9(07) VALUE 0.
03 SH-JUL-DATE-ALPHA REDEFINES 3SH-AGE-DAYS 90)VALUE 0.
05SH-JUL-YYYY 90)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
05 SH-JUL-DDD PIC 9(03) * *
03 SH-BEG-YYYYMMDD PIC 9(0 SH-MONTHS (07) VALUE0java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
0 * D A T E W O R K A R E A *
05 SH-BEG-YYYY1DATE-WORK-AREA
05 SH-BEG-MM (2.
05 SH-BEG-DD PIC 9(02). * *
03 SH-END-YYYYMMDD PIC 9(08) DW-TODAYS-DATE
03 SH-END-YYYYMMDD-ALPHA REDEFINES SH-END-YYYYMMDD0DW-TODAYS-DAY2.
05 0 PIC(4.
05 SH-END-MMPIC0)
05 SH-END-DD DW-TODAYS-YYYY-R REDEFINESDW-TODAYS-YYYY. *
03 SH-OFFSET PIC S9(08) VALUE 0.
03 SH-AGE-YEARS PIC 9(04) VALUE 0.
03SH-AGE-MONTHS PIC 9(0) VALUE
03 SH-AGE-DAYS PIC 9(02) VALUE 0.
03 SH-AGE-TOTDAYS PIC 9(08) VALUE 0. *
03 SH-YEARS PIC S90 PIC 9(2)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
03 SH-MONTHS PIC S9(07) VALUE 0.
0 SH-DAYS S97) VALUE 0. *
03 SH-RESULT PIC X(20) 5DW-WORK-MONTH 9(02). * ****************************************************************** * * * D A T E W O R K A R E A * * * ****************************************************************** *
01 PIC)
03 DW-DATE-ERROR-FLAG PIC 9(01). * * * ** TODAYS DATE ** *
03 DW-WORK-DD90)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
03 DW-TODAYS-DATE-ALPHA REDEFINES DW-TODAYS-DATE.
05 DW-TODAYS-MONTH 9(02).
05 DW-TODAYS-DAY PIC 9(02).
5DW-TODAYS-YEAR 904. *
03 DW-TODAYS-YYYYMMDD PIC 9(08).
03 DW-TODAYS-YYYYMMDD-ALPHA REDEFINES DW-TODAYS-YYYYMMDD.
05 DW-TODAYS-YYYY 9(0)
05 DW-TODAYS-YYYY-R REDEFINES 5 PIC0)
07 DW-TODAYS-CCDW-OFFSET-UNSIGNED-ALPHAREDEFINES.
7 PIC2.
05 DW-TODAYS-MM PIC 9(02).
05 DW-TODAYS-DD PIC9(02). * * * ** DATE WORK AREA ** *
03 DW-WORK-DATE PIC 9(08).
03 DW-WORK-DATE-ALPHA REDEFINES*
05 PIC 9(2.
05 DW-WORK-DAY PIC 9(02).
05 DW-WORK-YEAR 9(0). *
03 DW-WORK-YYYYMMDD PIC 9(08) 0 PIC 904).
03 DW-WORK-YYYYMMDD-ALPHA REDEFINES DW-WORK-YYYYMMDD.
05 DW-WORK-YYYY PIC 9(04).
05 DW-WORK-YYYY-R REDEFINES 5DW-JUL-YYYY-R DW-JUL-YYYY
07 07 DW-WORK-CC()
0 PIC (2. 03 DW-BEG-YYYYMMDD PIC 9(08).
0 PIC * * * ** SHORT MMDDYY DATE ** *
03 DW-SHORT-DATE PIC DW-BEG-CCPIC.
0 REDEFINES.
05 DW-SHORT-MONTH PIC0.
05 DW-SHORT-DAY PIC 9(02). * ** END DATE ** * * * ** OFFSET DATE AREAS ** *
03 DW-OFFSET PIC S9(08). *
03 DW-OFFSET-UNSIGNED PIC 9(08).
03 DW-OFFSET-UNSIGNED-ALPHA REDEFINES DW-OFFSET-UNSIGNED.
05 DW-OFFSET-YYYY PIC0)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
05 DW-OFFSET-MM PIC 9(02).
05 DW-OFFSET-DD5DW-END-YYYY-R DW-END-YYYY * * * ** JULIAN DATE ** *
03 DW-JUL-DATE PIC 7DW-END-YY 9(2.
03DW-JUL-DATE-ALPHA DW-JUL-DATE
05 DW-JUL-YYYY PIC 9(04).
5DW-JUL-YYYY-R DW-JUL-YYYY
07 DW-JUL-CC PIC 9(02).
07 DW-JUL-YY *
05 DW-JUL-DDD PIC 9(03). * * * ** BEGIN DATE ** *
03 DW-BEG-YYYYMMDD PIC 9(08).
03 DW-BEG-YYYYMMDD-ALPHA REDEFINES*
05 * ** INPUT/OUTPUT VARIABLES **
05 DW-BEG-YYYY-R DW-BEG-YYYY
07 DW-BEG-CCDW-MONTHS S9
07DW-BEG-YY 90)
05 DW-BEG-MM PIC3DW-WEEKDAY 9(0java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
05 DW-BEG-DD PICS9 * * * ** END DATE ** *
03 PIC 90)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 * * ** NUMBER OF DAYS IN EACH MONTH **
05 DW-END-YYYY-R REDEFINES DW-END-YYYY.
07 DW-END-CC 9(02)
07 DW-END-YY PIC 9 0 OCCURSjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
05 DW-END-MM PIC 9(02 * ** INCLUDE ALL THE DATES OVER WHICH BUSINESS DAYS MIGHT **
05 DW-END-DD * ** MUST BE ADDED TO THE DATE TO GET THE NEXT BUSINESS DAY. ** * * * ** RESULTS OF AGE COMPUTATION ** *
03 DW-AGE-YEARS PIC 9(04).
03 DW-AGE-MONTHS PIC 9(02).
03 DW-AGE-DAYS PIC 9(02).
03 DW-AGE-TOTDAYS PIC 9(08). * * * ** INPUT/OUTPUT VARIABLES ** *
3 DW-YEARS S97.
03 DW-MONTHS PIC* YYYYMMDDCC
03 DW-DAYS 1 19981220.
03 DW-WEEKDAY PIC 9(01). * * * ** SCRATCH WORK AREAS FOR DATE ROUTINES ** * ** (ASSUME MODIFIED BY ALL DATE ROUTINES) ** *
03 DW-WORK1 PIC S9(09). PIC S9.
03 DW-WORK3 0 REDEFINES.
9)
03 DW-TEMP-MM PIC1 PICjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 * * * ** NUMBER OF DAYS IN EACH MONTH ** * ** (DAYS IN FEBRUARY ARE ADJUSTED BY DATE ROUTINES) ** *
03 DW-DAYS-IN-MONTHS OCCURS 7 TIMES
05 DW-DAYS-IN-MONTH OCCURS 12 TIMES PICPICX0). * * * ** HOLIDAY TABLE ** * * ** THIS TABLE CONTAINS EVERY HOLIDAY ON WHICH THE BUSINESS ** * ** OFFICE IS CLOSED. IT SHOULD BE UPDATED EVERY YEAR TO ** * ** INCLUDE ALL THE DATES OVER WHICH BUSINESS DAYS MIGHT ** * ** NEED TO BE CALCULATED. NO NEED TO ADD WEEKEND DATES. ** * * ** THE ENTRIES IN THIS TABLE CONSIST OF AN 8-DIGIT DATE ** * ** (YYYYMMDD), FOLLOWED BY A 2-DIGIT COUNT OF DAYS WHICH ** * ** MUST BE ADDED TO THE DATE TO GET THE NEXT BUSINESS DAY. ** * * ** EXAMPLE: THANKSGIVING, 1997, OFF THURSDAY 11/27 AND ** * ** FRIDAY 11/28 UNTIL THE NEXT MONDAY 11/31. THE ENTRIES ** * ** IN THE TABLE WOULD BE: 1997 11 27 04 AND 1997 11 28 03 ** * * ** EXAMPLE: CHRISTMAS, 1998, OFF FRIDAY 12/25 THROUGH ** * ** MONDAY 12/28 UNTIL TUESDAY 12/29. THE ENTRIES IN THE ** * ** TABLE WOULD BE: 1998 12 25 04 AND 1998 12 28 01 ** *
0 .
05 DW-HT-VALUES. * YYYYMMDDCC
07 FILLERPIC 9(1 3 09 1 "G Months".
07 PIC(0 19971120.
07 FILLERPIC 9(10) VALUE 1 1 "I =SubYears.
07 FILLERPIC 9(10) VALUE 3 03 COLUMN3 VALUE J=Calc *
0 0LINE 7VALUE Jul
0 06COLUMN3 ALUEto BYDW-HT-HX
.
09 DW-HT-YYYY PIC 9(04).
0 REDEFINES. *
11 DW-HT-YY PIC 9(02).
09 PIC 9(02).
00 14 0VALUE" MMDDYYYY:"
9(2. * * * ** WEEKDAY NAMES ** *
3DW-DAY-NAMES VALUE"SUNMONTUEWEDTHUFRISAT".
05 DW-DAY-NAME OCCURS 7 TIMES PIC X(03). *
SCREEN SECTION. * * * M E N U S C R E E N *
01 MENU-SCREEN.
03 BLANK SCREEN.
03 LINE 14 1 "Date (/MM/DD): ". "D A T E R O U T I N E 03 PIC 9999/99/99 USING . *
03 LINE 03 * G E T J U L Y Y Y Y D D D
03 1GET-JUL-YYYYDDD-SCREEN.
03 LINE 05 COLUMN0 14 10VALUE YYYY
03 06 COLUMN1 VALUE Days
03 LINE 07 COLUMN 17 *
03 LINE 08 COLUMN 17 VALUE"F = Add Months".
03 LINE 09 COLUMN 17 VALUE0 LINE 4COLUMN0VALUEDateYYYY:"
03 LINE 10 COLUMN 17 VALUE"H = Add Years".
03 LINE 11 COLUMN 17 VALUE"I = Sub Years".
03 LINE3 37 VALUE=Calc.
03 LINE 04 COLUMN 37 VALUE"K = Compute Age".
03 LINE 05 COLUMN 37 VALUE"L = * G E T D A T E M O N T H S *
03 07 COLUMN 3 VALUE" = Add Days, Business".
0 1 2 " = Exit: .
03 PIC X 3PIC//9USING. * * * I N P U T S C R E E N S * * * G E T E D I T D A T E *
* G E T D A T E Y E A R S
03 PIC X(08)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 7 * * * G E T W O R K M M D D Y Y Y Y *
01 GET-WORK-MMDDYYYY-SCREEN.
MM .
03 PIC 99/99/9999 USING java.lang.StringIndexOutOfBoundsException: Range [0, 57) out of bounds for length 50 * * * G E T W O R K Y Y Y Y M M D D *
01 GET-WORK-YYYYMMDD-SCREEN.
0 LINE 0VALUE (/MM/): ".
03 PIC 9999/9 3PIC999/9USING. * * * G E T J U L Y Y Y Y D D D * *
03 LINE 14 COLUMN 10 VALUE* G E T B E G / E N D D A T E S
03 GET-BEG-END-YYYYMMDD-SCREENjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 * * * G E T D A T E D A Y S *
01 GET-DATE-DAYS-SCREEN.
0 1 1 VALUEYYYY .
03 PIC 9999/ 3PIC99/9USING.
03 *
03 PIC ZZZZZZ USING SH-DAYS. * * * G E T D A T E M O N T H S *
01GET-DATE-MONTHS-SCREEN
X2)FROM.
03 PIC 9999/99/ *
03 LINE 16 COLUMN 10 VALUE"Months: ".
03 PIC ZZZZZZ USING SH-MONTHS. * * * G E T D A T E Y E A R S *
0 .
03 LINE 14 03 LINE 18 0 VALUEDate:.
03 PIC99/9/9 USINGSH-WORK-YYYYMMDD
03 LINE 16 COLUMN 10 VALUE"Years: ".
03 PICUSING . * * * G E T D A T E O F F S E T *
01 GET-DATE-OFFSET-SCREEN.
03 LINE 14 COLUMN 10 VALUE ESCAPE
03 PIC 9999/99/99 USING SH-WORK-YYYYMMDD.
03 LINE 16 COLUMN 10 VALUEINSPECTjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
03 PIC -9 02000-XIT * * * G E T B E G / E N D D A T E S *
01 java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
03 LINE 1 ERFORM 030-java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
03 PICjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
03 LINE 16 COLUMNPERFORM400ADD-DAYS
03 PIC 9999/99/99 USING * * * O U T P U T S C R E E N S * * * S H O W R E S U L T *
01 SHOW-RESULT-SCREEN.
0 18COLUMN 0ADD-MONTHS PIC 0600- * * * S H O W D A T E D A Y S *
03 LINETHRU
0 Z,,ZZ9 SH-DAYS * * * S H O W N E W D A T E *
01 SHOW-NEW-DATE-SCREEN00
03 LINE 18 COLUMN 20 VALUE"New Date: ".
3 PIC9/9/9FROM. * * * S H O W A G E *
01 SHOW-AGE-SCREEN.
0 LINECOLUMN0VALUE Years
03 PICTHRUEXIT
03 LINE 19 COLUMN 20 VALUE"Months: ".
03 PIC
03 = ")
3 Z,,ZZZ SH-AGE-DAYS
03 12000-java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
03 PIC ZZPERFORM3000JUL-GREG * * * S H O W J U L Y Y Y Y D D D *
01 SHOW-JUL-YYYYDDD-SCREEN.
0
03 PIC999/999 FROM. * * * S H O W Y Y Y Y M M D D *
140000-EXIT
03 LINE 18 COLUMN.
03 PIC 0010-. * * * S H O W M M D D Y Y Y Y *
01 SHOW-MMDDYYYY-SCREEN.
03 LINE 18 COLUMN 10 VALUE"Date (MM/DD/YYYY): ". * *
03 PIC 99/99/9999 FROM SH-WORK-MMDDYYYY. * PROCEDUREDIVISION* Birmingham, AL 35215 * * * * C O N T R O L *
000000-CONTROL. * PERFORM 000100-PROCESS * THRU 001000-EXIT. *
THRU * RESULT: DW-DATE-ERROR-FLAG = 0 IF DATE IS VALID * UNTIL (WS-ESCAPE-FLAG = 1) * * *
000000-EXIT. STOPRUN. * * * P R O C E S S * * * MOVEMOVETO. DISPLAY MENU-SCREEN (DW-WORK-DATE-ALPHA NUMERIC ACCEPT java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 ON ESCAPE * ** SET DAYS IN FEBRUARY **
1TOWS-ESCAPE-FLAG GOTO 40 DW-WORK-YYYY java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 INSPECT WS-ANSWER
abcdefghijklmnopqrstuvwxyz TO 29 TO(2) * INITIALIZE. * IF = "" PERFORMIFNOT
THRUjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
2 DW-DAYS-IN-MONTH IF*
PERFORMDATE-DAYS
THRUOR ELSE IF (WS-ANSWER = "C") PERFORM 030000-WEEKDAY
THRU 030 DW-WORK-DDDW-WORK-MM ELSE IF (WS-ANSWER * MODIFIED 12/26/95. PERFORM00-DD-DAYS * *******************************
THRU 040000-EXIT* * Judson D. McClendon ** ELSE* * Birmingham, AL 35215 *. IF (WS-ANSWER = " * ******************************* PERFORM 050000-SUBTRACT-DAYS
THRU****************************************************************** ELSE IF (WS-ANSWER = "F") PERFORM06000-DD-MONTHS
THRU 060000-EXIT ELSE IF (WS-ANSWER * PERFORM00-UBTRACT-MONTHS
THRU * RETURNS A NUMBER WHICH IS ONE GREATER FOR EACH SUCCESSIVE * ELSE* *
(WS-ANSWERH)
080000-java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
THRU 080000-EXIT* S C R E E N H O L D A R E A * ELSE IF (WS-ANSWER") PERFORM00-SUBTRACT-YEARS
THRU 090000-EXIT
3 REDEFINES* *0 PIC90)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 IF* PERFORM00-
THRU 100000-EXIT ELSE IF (WS-ANSWER = "K") PERFORM 110000-COMPUTE-AGE * + DAY) ) *
THRU 110000-EXIT ELSE IF (WS-ANSWER * * SH-WORK-MM PIC902). PERFORM* *
THRU 120000-EXIT ELSE IF (WS-ANSWER = "M") PERFORM10000-JUL-GREG
THRU 130000-EXIT ELSE IF (WS-ANSWER = "N") PERFORM 140 * *
140000-EXIT. * MOVE 0 TO* ******************************* *
000100-EXIT* * Birmingham, AL 35215 ** * EXIT. * ****************************************************************** * * * D A T E E D I T * * * * Judson D. McClendon * * Sun Valley Systems * * 329 37th Court NE * * Birmingham, AL 35215 * * 205/853-8440 * * * * USAGE: MOVE <MMDDYYYY DATE> TO DW-WORK-DATE-ALPHA. * * PERFORM 001000-DATE-EDIT * * THRU 001000-EXIT. * * * * RESULT: DW-DATE-ERROR-FLAG = 0 IF DATE IS VALID * * DW-DATE-ERROR-FLAG = 1 IF DATE IS NOT VALID * * * SUBTRACT 1 FROM DW-TEMP-YYYY * DW-DAYS-IN-MONTH = CORRECT FOR YEAR OF THIS DATE * * * ****************************************************************** *
001000-DATE-EDIT PIC) * * ** ERROR FLAG WILL BE RESET TO 0 ON GOOD EXIT ** * MOVE * IF (*java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 GO000EXIT * MOVETO MOVETO. MOVE . * IF < 0
ADW-TODAYS-YYYYMMDD-ALPHA * * ** SET DAYS IN FEBRUARY ** *
28 DW-DAYS-IN-MONTH***************************************************************** DIVIDEINTOGIVING
05 DW-TODAYS-DD 90) * ** TODAYS DATE ** MOVE DW-DAYS-IN-MONTH ELSE DIVIDE1 INTO5DW-TODAYS-MONTH0. REMAINDER5DW-WORK-YEAR)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58 IF* DIVIDE 4 INTO DW-WORK-YYYY GIVING 07 DW-TODAYS-CC PIC 9(02) * * IF ( 05 DW-WORK-DD 90). MOVE* *
( < 01
>DPIC TO 0100-EXIT * * ** GOOD DATE ** *
3 REDEFINES DW-OFFSET-UNSIGNED *
001000-EXIT. EXIT * * * ****************************************************************** * * * C A L C U L A T E D A T E D A Y N U M B E R * * * * * * RETURNS A NUMBER WHICH IS ONE GREATER FOR EACH SUCCESSIVE * * DATE. * * * * USAGE: MOVE <FIRST DATE> TO DW-WORK-YYYYMMDD. * * PERFORM 001100-DATE-DAYS * * THRU 001100-EXIT. * * * * RESULT: DW-DAYS = DATE DAY NUMBER * * * * * * THIS ROUTINE USES A VARIATION OF ZELLER'S CONGRUENCE. * * THE FORMULA IS: * * * * <DATE DAY NBR> = ( (YEAR * 365) * * + INT(YEAR / 4) * * - INT(YEAR / 100) * * + INT(YEAR / 400) * * + INT(MONTH * 30.6001) * * + DAY) ) * * * * WHERE: DAY = DAY OF THE MONTH * * * * MONTH = MONTH + 13 (JAN & FEB) * * MONTH + 1 (MAR - DEC) * * * * YEAR = YEAR - 1 (JAN & FEB) * * YEAR (MAR - DEC) * * * * INT(...) MEANS TAKE THE INTEGER PART (NO ROUNDING) * * * * * * THE DATE-DAY-NUMBER CAN BE USED TO DETERMINE THE NUMBER OF * * DAYS BETWEEN TWO DATES BY COMPUTING THE DAY NUMBER OF EACH * * DATE AND SUBTRACTING, LIKE THIS: * * * * MOVE <FIRST DATE> TO DW-WORK-YYYYMMDD. * * PERFORM 001100-DATE-DAYS * * THRU 001100-EXIT. * * MOVE DW-DAYS TO <HOLD DAY>. * * MOVE <SECOND DATE> TO DW-WORK-YYYYMMDD. * * PERFORM 001100-DATE-DAYS * * THRU 001100-EXIT. * * SUBTRACT DW-DAYS FROM <HOLD DAY> * * GIVING <DAYS BETWEEN DATES>. * * * ****************************************************************** *
00-. * * ** ADJUST YEAR AND MONTH ** * MOVE DW-WORK-YYYY * MOVETODW-TEMP-MM IF (DW-WORK-MM * ** EXAMPLE: THANKSGIVING, 1997, OFF THURSDAY 11/27 AND ** ADD 13 TO DW-TEMP-MM * ** EXAMPLE: THANKSGIVING, 1997, OFF THURSDAY 11/27 AND ** SUBTRACT 01200- * EXAMPLE: CHRISTMAS19,OFF 12/25 THROUGH* ** MONDAY 12/28 UNTIL TUESDAY 12/29. THE ENTRIES IN THE ** ELSE
DD1 TO DW-TEMP-MM. *
DW-TEMP-YYYY365GIVING. * BYGIVING TO. * DIVIDE DW-TEMP-YYYY BY 100 GIVING DW-WORK1. SUBTRACT DW-WORK1 FROM DW-DAYS. * DIVIDE DW-TEMP-YYYY REDEFINESDW-HT-HX * USAGE: MOVE <DATE> TO DW-WORK-YYYYMMDD. *0 REDEFINESjava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68 * MULTIPLY ADD DW-WORK1 PIC 90) * ADD DW-WORK-DD TO DW-DAYS. *
001100-EXIT. EXIT. * * * ****************************************************************** * * * C A L C U L A T E D A Y O F W E E K * * * * * * WHEN GIVEN ANY DATE THIS ROUTINE RETURNS A NUMBER FROM * * 1 TO 7 INDICATING THE DAY OF WEEK ON WHICH THE DATE FALLS. * * * * * * USAGE: MOVE <DATE> TO DW-WORK-YYYYMMDD. * * PERFORM 001200-WEEKDAY * * THRU 001200-EXIT. * * * * RESULT: DW-WEEKDAY = DAY OF WEEK * * * * * * THIS ROUTINE USES ZELLER'S CONGRUENCE, EXPRESSED BY THE * * FOLLOWING FORMULA: * * * * <WEEKDAY> = (INT((13 * MONTH + 3) / 5) * * + DAY * * + YEAR * 03 LINE 12 COLUMN 25 VALUE "Esc = Exit: ". * - INT(YEAR / 100) * * + INT(YEAR / 400) * * + 1) MOD 7) + 1 * * * * WHERE: WEEKDAY = 1 TO 7 WITH 1 = SUNDAY 5 = THURSDAY * * 2 = MONDAY 6 = FRIDAY * * 3 = TUESDAY 7 = SATURDAY * * 4 = WEDNESDAY * * * * DAY = DAY OF THE MONTH * * * * MONTH = MONTH OF THE YEAR (JAN AND FEB COUNT AS * * MONTHS 13 AND 14 OF THE PREVIOUS YEAR) * * * * YEAR = FOUR DIGIT YEAR (YEAR - 1 IF MONTH IS * * JAN OR FEB) * * * * INT(...) MEANS TAKE THE INTEGER PART (NO ROUNDING) * * * * X MOD Y MEANS THE REMAINDER AFTER DIVIDING Y * * INTO X * * * ****************************************************************** *
1WEEKDAY * * ** ADJUST YEAR AND MONTH IF MONTH = JAN OR FEB ** * G E T D A T E Y E A R S MOVE* MOVE DW-WORK-MM 0 G E T D A T E Y E A R S IF (DW-WORK-MM 0 GET-DATE-YEARS-SCREEN
MM SUBTRACT 1 FROM3PIC//9USING0PICUSING* * * ** CALCULATE INTO DW-WORK1 ** *
* ADD DW-WORK-DD 3 *
DW-TEMP-YYYY TO DW-WORK1 9999/999 SH-WORK-YYYYMMDD *
DW-TEMP-YYYY 4GIVING*java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 ADD* * DIVIDE 0 4 1VALUE/BTRACT-DAYS SUBTRACT DW-WORK2 FROMK1. *
DW-TEMP-YYYY00* UTPUT S ADD DW-WORK2 TO DW-WORK1 * * ADD 1 TO DW-WORK1. *
0 SHOW-RESULT-SCREEN ADD 1 TO 3 18 COLUMN0 *
001200-EXIT. EXIT. * * * ****************************************************************** * * * A D D D A Y S T O A D A T E * * * * * * WHEN GIVEN ANY DATE AND A NUMBER OF DAYS THIS ROUTINE WILL * * ADD THE NUMBER OF DAYS TO THE DATE. * * * * * * USAGE: MOVE <DATE> TO DW-WORK-YYYYMMDD. * * MOVE <DAYS> TO DW-DAYS. * * PERFORM 001300-ADD-DAYS * * THRU 001300-EXIT. * * * * RESULT: DW-WORK-YYYYMMDD = DATE AFTER DAYS ADDED * * DW-DAYS-IN-MONTH = CORRECT FOR YEAR OF THIS DATE * * * ****************************************************************** *
001300-ADD-DAYS ** * * ** SET DAYS IN FEBRUARY ** * MOVE 39999FROM. DIVIDE* IF (DW-WORK2 NOT = 0)
(=0java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
P DIVISION* ELSE DIVIDE 100 INTO0IF=0CONTROL REMAINDER* IFRUN*
S RUN* REMAINDER DW-WORK2 IF ( * MOVE 29 SPACE WS-ANSWER * ADD DW-WORK-DD DW-DAYS * PERFORM0130LOOP-MONTH 00010EXIT* A D D M O N T H S T O A D A T E *
THRU "".
(DW-DAYS DW-DAYS-IN-MONTH SCREEN-HOLD-AREA * MOVETO *
001300-EXIT. EXIT. * * *
0130LOOP-MONTH * SUBTRACT() FROM. *
DW-WORK-MM IF > 1) ADD 1 TO DW-WORK-YYYY SUBTRACT. * MOVE(2.
0 0 REMAINDER-
* MOVEPERFORM 001520-LOOP-YEARIF F) ELSE DIVIDE 080000-EXIT REMAINDER DW-WORK2 IF ( PERFORM 090000-SUBTRA DIVIDE 4 INTO DW-WORK-YYYY ELSE REMAINDER IF ( ELSE
( = "" * DIVIDE0 DW-WORK-YYYY EXIT. * * * ****************************************************************** * * * S U B T R A C T D A Y S F R O M A D A T E * * * * * * WHEN GIVEN ANY DATE AND A NUMBER OF DAYS THIS ROUTINE WILL * * SUBTRACT THE NUMBER OF DAYS FROM THE DATE. * * * * * * USAGE: MOVE <DATE> TO DW-WORK-YYYYMMDD. * * MOVE <DAYS> TO DW-DAYS. * * PERFORM 001400-SUBTRACT-DAYS * * THRU 001400-EXIT. * * * * RESULT: DW-WORK-YYYYMMDD = DATE AFTER DAYS SUBTRACTED * * DW-DAYS-IN-MONTH = CORRECT FOR YEAR OF THIS DATE * * * ****************************************************************** *
0 * DW-DAYS-IN-MONTH = CORRECT FOR YEAR OF THIS DATE * * SUBTRACT DW-DAYS FROM DW-WORK-DD GIVING DW-DAYS * *
java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 36
THRUEXIT UNTIL* 205/853-8440 ** * MOVETO DW-WORK-DD *
001400-EXIT. EXIT. * * *
001420-LOOP-MONTH. * SUBTRACT* DW-DAYS-IN-MONTH = CORRECT FOR YEAR OF THIS DATE * IF (DW-WORK-MM ****************************************************************** SUBTRACT ADD 12 TO* MOVE <MONTHS> TO DW-MONTHS. * * MOVE 28 TO DW-DAYS-IN-MONTH * THRU 001600-EXIT. * 29TO(java.lang.StringIndexOutOfBoundsException: Range [43, 44) out of bounds for length 7
( NOT) REMAINDER. IF (DW-WORK2MOVE******************************************************************REMAINDER MOVE 29 TO DW-DAYS-IN-MONTH(2) ELSE DIVIDE 100 DW-MONTHSFROMGIVING DW-MONTHS *
IFNOT=0 DIVIDE 4 INTO DW-WORK-YYYY * ** GOOD DATE **
DW-WORK2 IFDW-WORK2) MOVE 2 . * ADD DW-DAYS-IN-MONTH(DW-WORK-MMMOVE 29 DW-DAYS-IN-MONTH2) *
040EXIT EXIT * * * ****************************************************************** * * * A D D M O N T H S T O A D A T E * * * * * * WHEN GIVEN ANY DATE AND A NUMBER OF MONTHS THIS ROUTINE * * WILL ADD THE NUMBER OF MONTHS TO THE DATE. * * * * * * USAGE: MOVE <DATE> TO DW-WORK-YYYYMMDD. * * MOVE <MONTHS> TO DW-MONTHS. * IF (DW-WORK-DD > DW-DAYS-IN-MONTH(DW-WORK-MM)) * THRU 001500-EXIT. * * * * RESULT: DW-WORK-YYYYMMDD = DATE AFTER MONTHS ADDED * * DW-DAYS-IN-MONTH = CORRECT FOR YEAR OF THIS DATE * * * ****************************************************************** *
001500-ADD-MONTHS2TO. * ADD DW-WORK-MM TO DW-MONTHS. * PERFORM0160EXIT
THRU 001520-EXIT UNTIL (DW-MONTHS NOT > 12). * MOVE DW-MONTHS TO* MONTH = MONTH + 13 (JAN & FEB) * * MOVE 28 TO DW-DAYS-IN-MONTH(2). DIVIDE 400 INTO DW-WORK-YYYY GIVING DW-WORK1 REMAINDER DW-WORK2. IF (DW-WORK2 = * * MOVE 29 TO DW-DAYS-IN-MONTH(2) ELSE* DAYS BETWEEN TWO DATES BY COMPUTING THE DAY NUMBER OF EACH * DIVIDE 100 INTO* * REMAINDER DW-WORK2 IF* THRU 001100-EXIT. * DIVIDE* THRU 001700-EXIT. *0110-DATE-DAYS. REMAINDER DW-WORK2
( = 0)
29 DW-DAYS-IN-MONTH * IF (DW-WORK-DD > DW-DAYS-IN-MONTH(DW-WORK-MM)) MOVE DW-DAYS-IN-MONTH(DW-WORK-MM) TO DW-WORK-DD. *
DW-TEMP-YYYYTO EXITADDDIVIDEBYGIVING. * * *
00MULTIPLY 35GIVING. *
2FROM ADD 1 TO DW-WORK-YYYY. *
001520EXIT EXIT. * * * ****************************************************************** * * * S U B T R A C T M O N T H S F R O M A D A T E * * * * * * WHEN GIVEN ANY DATE AND A NUMBER OF MONTHS THIS ROUTINE * * WILL SUBTRACT THE NUMBER OF MONTHS FROM THE DATE. * * * * * * USAGE: MOVE <DATE> TO DW-WORK-YYYYMMDD. * * MOVE <MONTHS> TO DW-MONTHS. * * PERFORM 001600-SUBTRACT-MONTHS * * THRU 001600-EXIT. * * * * RESULT: DW-WORK-YYYYMMDD = DATE AFTER MONTHS SUBTRACTED * * DW-DAYS-IN-MONTH = CORRECT FOR YEAR OF THIS DATE * * * ****************************************************************** *
001600-SUBTRACT-MONTHS. * SUBTRACT* + INT(YEAR / 4) * * PERFORM 001620-LOOP-YEAR
THRU 001620-EXIT UNTIL (DW-MONTHS > 0). * MOVE* 3 = TUESDAY 7 = SATURDAY * * MOVE 28 TO DW-DAYS-IN-MONTH(2). DIVIDEINTO DW-WORK1 REMAINDER DW-WORK2. IF (DW-WORK2 * MONTHS 13 AND 14 OF THE PREVIOUS YEAR) * MOVE 29 * YEAR = FOUR DIGIT YEAR (YEAR - 1 IF MONTH IS * ELSE DIVIDE 100 INTO DW-WORK-YYYY GIVING DW-WORK1REMAINDERDW-WORK2
DW-WORK2 IF (DW-WORK2 NOT = 0) DIVIDE 4 INTO DW-WORK-YYYY GIVING DW-WORK1 REMAINDER DW-WORK2 IF (DW-WORK2 * MOVE 29 TO* *
( > DW-DAYS-IN-MONTH)) MOVE DW-DAYS-IN-MONTH(DW-WORK-MM) TO DW-WORK-DD. *
001600-EXIT.
. * * *
001620-LOOP-YEAR. * ADD 12 TO DW-MONTHS. SUBTRACT 1 FROM DW-WORK-YYYY. *
010EXIT EXIT. * * * ****************************************************************** * * DIVIDE DW-TEMP-YYYY BY 100 GIVING DW-WORK2. * * * * * WHEN GIVEN ANY DATE AND A NUMBER OF YEARS THIS ROUTINE * * WILL ADD THE NUMBER OF YEARS TO THE DATE. * * * * * * USAGE: MOVE <DATE> TO DW-WORK-YYYYMMDD. * * MOVE <YEARS> TO DW-YEARS. * * PERFORM 001700-ADD-YEARS * * THRU 001700-EXIT. * * * * RESULT: DW-WORK-YYYYMMDD = DATE AFTER YEARS ADDED * * DW-DAYS-IN-MONTH = CORRECT FOR YEAR OF THIS DATE * * * ****************************************************************** *
001700-ADD-YEARS. * ADD DW-YEARS TO DW-WORK-YYYY. * MOVE* ADD THE NUMBER OF DAYS TO THE DATE. * DIVIDE* ** SET DAYS IN FEBRUARY ** REMAINDER DW-WORK2. IF (DW-WORK2 * MOVE <DAYS> TO DW-DAYS. *DIVIDE0 DW-WORK-YYYY DW-WORK1
29 DW-DAYS-IN-MONTH ELSE DIVIDE 00INTOGIVING DW-WORK1 REMAINDER
(DW-WORK2 =0) DIVIDE 4 INTO DW-WORK-YYYY GIVINGIF(DW-WORK2 = 0)
DW-WORK2 IF (DW-WORK2 IFDW-WORK2 MOVE 29java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 7 * IF (DW-WORK-DD 001320-EXIT MOVE DW-DAYS-IN-MONTH (DW-DAYS > (DW-WORK-MM. *
070EXIT EXIT. * * * ****************************************************************** * * * S U B T R A C T Y E A R S F R O M A D A T E * * * * * * WHEN GIVEN ANY DATE AND A NUMBER OF YEARS THIS ROUTINE * * WILL SUBTRACT THE NUMBER OF YEARS FROM THE DATE. * * * * * * USAGE: MOVE <DATE> TO DW-WORK-YYYYMMDD. * * MOVE <YEARS> TO DW-YEARS. * * PERFORM 001800-SUBTRACT-YEARS * * THRU 001800-EXIT. * * * * RESULT: DW-WORK-YYYYMMDD = DATE AFTER YEARS SUBTRACTED * * DW-DAYS-IN-MONTH = CORRECT FOR YEAR OF THIS DATE * * * ****************************************************************** *
001800- * * SUBTRACT DW-YEARS FROM DW-WORK-YYYY. * MOVE DW-DAYS-IN-MONTHjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 DIVIDE* SUBTRACT THE NUMBER OF DAYS FROM THE DATE. * REMAINDER DW-WORK2. IF ( = 0) MOVE9TO(2) ELSE DIVIDE 100 INTO DW-WORK-YYYY GIVING DW-WORK1 REMAINDER DW-WORK2 IF (DW-WORK2 NOT = 0) DIVIDE 4 INTO DW-WORK-YYYY GIVING* DW-AGE-DAYS = DAYS OVER WHOLE MONTH ******************************************************************* REMAINDER IF(DW-WORK2=0) MOVE 29 TO DW-DAYS-IN-MONTH(2). * * * MOVE DW-DAYS-IN-MONTH * DW-BEG-YYYYMMDD = HAS BEEN MODIFIED * *
001800-EXIT. EXIT. * * * ****************************************************************** * * * C A L C U L A T E D A T E O F F S E T * * * * * * ADDS A SIGNED OFFSET IN THE FORM +-YYYYMMDD TO A DATE * * IN YYYYMMDD FORM. * * * * * * USAGE: MOVE <DATE> TO DW-WORK-YYYYMMDD. * * MOVE <OFFSET> TO DW-OFFSET. * * PERFORM 001900-CALC-OFFSET * * THRU 001900-EXIT. * * * * RESULT: DW-WORK-YYYYMMDD DATE AFTER OFFSET APPLIED * * DW-DAYS-IN-MONTH = CORRECT FOR YEAR OF THIS DATE * * * ****************************************************************** *
0 01400-. * MOVE* * * IF (DW-OFFSETTHRU*java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 TO MOVE DW-OFFSET-MM * PERFORM 001500-ADD-MONTHS * PERFORM**
THRU 001500-EXIT MOVE DW-OFFSET-DD TO DW-DAYS0140-XIT PERFORM 001300-ADD-DAYS
0 ELSE
* SUBTRACT 1 FROM DW-WORK-MM. IF (DW-WORK-MM < 01) SUBTRACT 1 FROM DW-WORK-YYYY ADD 12 TO* *
090EXIT EXIT. * * * ****************************************************************** * * * C O M P U T E A G E * * * * * * WHEN GIVEN THE BEGIN DATE AND END DATE THIS ROUTINE * * CALCULATES THE AGE IN YEARS, MONTHS, DAYS AND TOTAL DAYS. * * * * * * USAGE: MOVE <BEGIN DATE> TO DW-BEG-YYYYMMDD. * * MOVE <END DATE> TO DW-END-YYYYMMDD. *
* PERFORM 002000-COMPUTE-AGE *
* THRU 002000-EXIT. *
**
* RESULT: DW-AGE-YEARS = WHOLE YEARS *
* DW-AGE-MONTHS = MONTHS OVER WHOLE YEAR *
* =DAYSOVER WHOLEMONTH *
* *
* (IE: AGE = YEARS + MONTHS + DAYS) *
*
* DW-AGE-TOTDAYS = TOTAL AGE IN DAYS *
* *
* DW-BEG-YYYYMMDD = HAS BEEN*
* DW-END-YYYYMMDD = HAS BEEN MODIFIED *
* *
***************************
.
002000- FROMGIVING.
*
* ** CALCULATE AGE IN DAYS **
*
MOVE DW-END-YYYYMMDD TO DW-WORK-YYYYMMDD.
PERFORM 001100-DATE-DAYS
THRU 001100-EXIT.
TODW-AGE-TOTDAYS
*
MOVE PERFORM 0190-SUBTRACT-MONTH
PERFORM 001100-*
THRU 001100 *
SUBTRACT DW-DAYS FROM DW-AGE-TOTDAYS.
*
CALCULATEINYEARS,&DAYS *
*
IF (DW-END-DD < DW-BEG-DD)
PERFORM 002020-ROLL-DAY
THRU 002020-EXIT.
COMPUTE DW-AGE-DAYS = DW-END-DD - DW-BEG-DD.
*
IFMOVE DW-WORK-DATE-ALPHA
PERFORM 0*
THRU 002040-EXIT.
COMPUTE DW-AGE-MONTHS = DW-END-MM - DW-BEG-MM.
*
COMPUTE DW-AGE-YEARS = DW-END-YYYY - DW-BEG-YYYY.
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
002000-EXIT.
EXIT.
*
*
*
002020-ROLL-DAY.
*
*
IF (DW-END-MM < 01)
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 40
THRU 002040-EXIT.
* java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 43
IF (DW-END-MM = 02)
MOVE 28 TO DW-DAYS-IN-MONTH(2)
DIVIDE 400 INTO DW-END-YYYY GIVING DW-WORK1
REMAINDER DW-WORK2
IF (DW-WORK2 = 0)
MOVE 29 TO DW-DAYS-IN-MONTH(2)
ELSE
DIVIDE 100 INTO DW-END-YYYY GIVING DW-WORK1
REMAINDER DW-WORK2
IF (DW-WORK2 NOT = 0)
DIVIDE 4 INTO DW-END-YYYY GIVING DW-WORK1
PERFORM 01100-DATE-DAYS
IF (DW-WORK2 = 0)
MOVE 29 TO DW-DAYS-IN-MONTH(2).
*
ADD DW-DAYS-IN-MONTH(DW-END-MM) TO DW-END-DD.
*
002020-EXIT.
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 7
*
*
*
002040-ROLL-MONTH.
*
SUBTRACT 1 FROM DW-END-YYYY.
*
ADD 12 TO DW-END-MM.
*
002040-EXIT.
EXIT.
*
*
*
***********************************
*
* G R E G O *
* *
* *
* CONVERTS A DATE000-SUBTRACT-DAYS.
DATE FORM (YYYDDD
*
DIVIDE1 DW-END-YYYYGIVING
* USAGE: MOVE <GREGORIAN DATE> TO DW-WORK-YYYYMMDD *
* PERFORM 002100-GREG-JUL DIVIDE4INTO DW-END-YYYY
* THRU 002100-EXIT. *
* RESULT: DW-JUL-DATE = DATE IN JULIAN DATE FORM (YYYYDDD) *
* *
* DW-WORK-YYYYMMDD = HAS BEEN MODIFIED *
******************************************************************
*
002100-GREG-JUL.
*
MOVE DW-WORK-YYYY TO DW-JUL-YYYY
*
PERFORM 001100-DATE-DAYS
THRU 001100-EXIT 12 TO DW-END-MM.
*
MOVE DW-DAYS TO DW-WORK3.
*
DW-WORK-YYYY
*
MOVE 12 TO DW-WORK-MM.
*
MOVE 31 TO DW-WORK-DD.
*
PERFORM 001100-DATE-DAYS
THRU 001100-EXIT.
*
SUBTRACT DW-DAYS FROM DW-WORK3
GIVING DW-JUL-DDD.
*MOVE*
002100-EXIT.
EXIT.
*
*
*
******************************************************************
* *
JU L I N T O SHOW-NEW-DATE-SCREEN
* *
* *
* CONVERTS A DATE IN JULIAN DATE FORM (YYYYDDD) INTO *
* GREGORIAN DATE FORM (YYYYMMDD). *
* *
*
* USAGE: MOVE <JUILAN DATE> TO DW-JUL-DATE. *
* PERFORM 002200-JUL-GREG
* THRU 002200-EXIT. *
*
* RESULT: DW-WORK-YYYYMMDD = DATE IN GREGORIAN FORM *
* DW-DAYS-IN-MONTH = CORRECT FOR YEAR OF THIS DATE *
* *
******************************************************************
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
002200-JUL-GREG.
*
SUBTRACT 1 FROM DW-JUL-YYYY MOVETO.
*
MOVE1
*
*
THRU001600EXIT
*
PERFORM 001300-ADD-DAYS
THRU 001300-EXIT.
*
java.lang.StringIndexOutOfBoundsException: Range [42, 7) out of bounds for length 19
EXIT.
*
*
*
******************************************************************
* *
* A D D D A Y S T O A D A T E, B U S I N E S S *
* *
* *
* WHEN GIVEN ANY DATE AND A NUMBER OF DAYS THIS ROUTINE WILL *
* ADD THE NUMBER OF DAYS TO THE DATE AND RETURN THE FIRST *
* BUSINESS DAY ON OR AFTER THE RESULTANT DATE. *
* *
* USAGE: MOVE <DATE> TO DW-WORK-YYYYMMDD. *
* MOVE <DAYS> TO DW-DAYS. *
* PERFORM 002300-ADD-DAYS-BUSINESS *
* THRU 002300-EXIT. *
* *
* RESULT: DW-WORK-YYYYMMDD = DATE AFTER DAYS ADDED *
* DW-DAYS-IN-MONTH CORRECT FORYEAR OFTHIS *
* *
********************************************************* * USAGE: MOVE<GREGORIAN DATE TO *
*
002300-ADD-DAYS-BUSINESS.
*
PERFORM 001300-ADD-DAYS
THRU 001300-EXIT.
*
PERFORM 001200**
THRU 001200-EXIT.
*
MOVE 2 TO DW-DAYS
java.lang.StringIndexOutOfBoundsException: Range [29, 15) out of bounds for length 38
THRU 001300-EXIT
ELSE
IF (DW-WEEKDAY = 1)
MOVE 1 TO DW-DAYS
PERFORM DW-WORK2 =
THRU 001300-EXIT.
*
* ** IF DATE IS A HOLIDAY, ADD NBR DAYS TO NEXT BUSINESS DAY **
*
SET DW-HT-HX TO 1.
*
MOVE DW-HT-DAYS(DW-HT-HX) TO DW-DAYS
PERFORM 001300-ADD-DAYS
THRU 001300-EXIT.
*
030EXIT.
EXIT.
*
*
* T E S SUBTRACT 1 FROM DW-END-YYYY
*
010000-DATE-EDIT.
*
DISPLAY GET-EDIT-DATE-SCREEN.
ACCEPT GET-EDIT-DATE-SCREEN
ON ESCAPE
GO TO ************
*
MOVE SH-EDIT-DATE TO DW-WORK-DATE-ALPHA.
PERFORM 001000-DATE-EDIT
THRU 001000-EXIT.
*
IF (DW-DATE-ERROR-FLAG = 0)
MOVE "DATE VALID" TO SH-RESULT
ELSE
MOVE "DATE INVALID" TO SH-RESULT.
DISPLAY SHOW-RESULT-SCREEN.
*
GO TO 010000-DATE-EDIT.
*
**
EXIT.
*
*
* T E S T D A T E D A Y S
*
020000-DATE-DAYS.
*
DISPLAY GET-WORK-YYYYMMDD-SCREEN.
ACCEPT GET-WORK-YYYYMMDD-SCREEN
ON ESCAPE
GO TO 020000-EXIT.
*
MOVE SH-WORK-YYYY TO DW-WORK-YYYY.
MOVE SH-WORK-MM TO DW-WORK-MM.
MOVE SH-WORK-DD TO DW-WORK-DD.
*
PERFORM 001100-DATE-DAYS
THRU 001100-EXIT.
*
MOVE DW-DAYS TO SH-DAYS.
DISPLAY SHOW-DATE-DAYS-SCREEN.
*
GO TO 200DATE-DAYS.
*
020000-EXIT.
.
*
*
* T E T W EE K java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
*
030000-WEEKDAY.
*
DISPLAY GET-WORK-YYYYMMDD-SCREEN.
ACCEPT GET-WORK-YYYYMMDD-SCREEN
ON ESCAPE
GO TO 030000-EXIT.
*
MOVE SH-WORK-YYYY TO DW-WORK-YYYY.
MOVE SH-WORK-MM TO DW-WORK-MM.
MOVE SH-WORK-DD TO DW-WORK-DD.
*
PERFORM 020-WEEKDAY
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
*
MOVE DW-DAY-NAME(DW-WEEKDAY) TO SH-RESULT.
DISPLAYTHRU 010-.
*
GO TO 030000-WEEKDAY.
*
0300THRU03-.
EXIT.
*
*
* T E S T A D D D A Y S
*
040000-ADD-DAYS.
*
DISPLAY GET-DATE-DAYS-SCREEN.
ON ESCAPE
GO TO 040000-EXIT.
*
MOVE SH-WORK-YYYY TO DW-WORK-YYYY.
MOVE SH-WORK-MM TO DW-WORK-MM.
MOVE SH-WORK-DD TO DW-WORK-DD.
MOVE SH-DAYS TO DW-DAYS.
*
PERFORM 001300-ADD-DAYS
010-java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
*
MOVE DW-WORK-YYYY TO TE TD A T E S
MOVE DW-WORK-MM TO SH-WORK-MM.
MOVE DW-WORK-DD TO SH-WORK-DD.
DISPLAY *
*
GO TO 040000-ADD-DAYS.
*
040000-EXIT.
EXIT.
*
*
* T E S T S U B T R A C T D A Y S
*
050000-SUBTRACT-DAYS.
MOVE 0 TO DW-DAYS.
DISPLAY GET-DATE-DAYS-SCREEN.
ACCEPT GET-DATE-DAYS-SCREEN
ON ESCAPE
GO TO 050000-EXIT.
*
MOVE SH-WORK-YYYY TO DW-WORK-YYYY.
MOVE SH-WORK-MM TO DW-WORK-MM.
MOVE SH-WORK-DD TO DW-WORK-DD.
MOVE SH-DAYS TO DW-DAYS.
*
PERFORM 001400-SUBTRACT-DAYS
THRU 001400-EXIT.
*
MOVE DW-WORK-YYYY TO SH-WORK-YYYY.
MOVE DW-WORK-MM TO SH-WORK-MM.
MOVE DW-WORK-DD TO SH-WORK-DD.
DISPLAY SHOW-NEW-DATE-SCREEN.
*
GO TO 050000-SUBTRACT-DAYS.
*
050000-EXIT.
EXIT.
*
*
* T E S T A D D M O N T H S
*
060000-ADD-MONTHS.
*
DISPLAY GET-DATE-MONTHS-SCREEN.
ACCEPT
*
*
MOVE SH-WORK-YYYY TO DW-WORK-YYYY.
MOVE SH-WORK-MM TO DW-WORK-MM.
MOVE SH-WORK-DD TO DW-WORK-DD.
MOVE SH-MONTHS TO DW-MONTHS.
*
PERFORM 001500-ADD-MONTHS
THRU 001500-EXIT.
* DW-WORK-DD.
MOVE DW-WORK-YYYY TO SH-WORK-YYYY.
MOVE DW-WORK-MM TO SH-WORK-MM.
MOVE DW-WORK-DD TO SH-WORK-DD.
DISPLAY SHOW-NEW-DATE-SCREEN.
*
GO TO 060000-ADD-MONTHS.
*
060000-EXIT.
EXIT.
*
*
* T E S T S U B T R A C T M O N T H S
*
070000-SUBTRACT-MONTHS.
*
MOVE 0 TO DW-MONTHS.
DISPLAY GET-DATE-MONTHS-SCREEN.
ACCEPT GET-DATE-MONTHS-SCREEN
ON ESCAPE
ON ESCAPE
*
MOVE SH-WORK-YYYY TO DW-WORK-YYYY.
MOVE SH-WORK-MM TO DW-WORK-MM.
MOVE SH-WORK-DD TO DW-WORK-DD.
MOVE SH-MONTHS TO DW-MONTHS.
*
CCEPTGET-WORK-YYYYMMDD-SCREEN
THRU 001600-EXIT.
*
MOVE DW-WORK-YYYY TO SH-WORK-YYYY.
MOVE DW-WORK-MM TO SH-WORK-MM.
MOVE DW-WORK-DD TO SH-WORK-DD.
DISPLAY SHOW-NEW-DATE-SCREEN.
*
GO TO 070000-SUBTRACT-MONTHS.
*
070000-EXIT.
--> --------------------
--> maximum size reached
--> --------------------
Messung V0.5
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.68 Sekunden
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.