Seq # *Modification Id* Act
----------------------------+
00001 M01S00001.comcvde +++| CTEXT COMCVDE - VALIDATE DATE OR TIME EXPRESSION.
00002 M01S00002.comcvde +++| SPACE 4,10
00003 M01S00003.comcvde +++| IF -DEF,QUAL$
00004 M01S00004.comcvde +++| QUAL COMCVDE
00005 M01S00005.comcvde +++| ENDIF
00006 M01S00006.comcvde +++| BASE D
Line S00007 Modification History |
M01 (Added by) | comcvde |
M02 (Updated by) | 281l803 |
Seq # *Modification Id* Act
----------------------------+
00007 M02S00007.281l803 ---|* COMMENT COPYRIGHT CONTROL DATA CORPORATION, 1987.
00008 M01S00001.281l803 +++|* COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
00009 M01S00008.comcvde +++| VDE SPACE 4,10
00010 M01S00009.comcvde +++|*** COMCVDE - VALIDATE DATE OR TIME EXPRESSION.
00011 M01S00010.comcvde +++|*
00012 M01S00011.comcvde +++|* G. S. YODER. 89/05/11.
00013 M01S00012.comcvde +++| SPACE 4,15
00014 M01S00013.comcvde +++|*** VDE - VALIDATE DATE OR TIME EXPRESSION.
00015 M01S00014.comcvde +++|*
00016 M01S00015.comcvde +++|* *VDE* CONVERTS A DISPLAY CODED DATE OR TIME EXPRESSION TO A
00017 M01S00016.comcvde +++|* PACKED FORMAT DATE OR A PACKED FORMAT DATE AND TIME. A DATE
00018 M01S00017.comcvde +++|* MAY BE SPECIFIED EXPLICITLY OR AS THE NUMBER OF DAYS BEFORE
00019 M01S00018.comcvde +++|* OR AFTER A BASE DATE. A TIME MAY BE SPECIFIED EXPLICITLY OR
00020 M01S00019.comcvde +++|* AS THE NUMBER OF DAYS, HOURS, MINUTES, OR SECONDS BEFORE OR
00021 M01S00020.comcvde +++|* AFTER A BASE DATE AND TIME. STATUS IS RETURNED INDICATING
00022 M01S00021.comcvde +++|* WHETHER THE ENTERED DATE OR TIME IS BEFORE OR AFTER THE BASE
00023 M01S00022.comcvde +++|* DATE AND TIME AND WHETHER AN EXPLICIT VALUE WAS SPECIFIED.
00024 M01S00023.comcvde +++|*
00025 M01S00024.comcvde +++|* THE BASE DATE AND TIME WILL BE SET TO THE CURRENT DATE AND
00026 M01S00025.comcvde +++|* TIME ON THE FIRST CALL TO *VDT* IF NOT PRESET BY THE CALLER.
00027 M01S00026.comcvde +++| VDE SPACE 4,75
00028 M01S00027.comcvde +++|** VDE - VALIDATE RELATIVE OR EXPLICIT DATE OR TIME EXPRESSION.
00029 M01S00028.comcvde +++|*
00030 M01S00029.comcvde +++|* ENTRY (X1) = DATE OR TIME PARAMETER, LEFT JUSTIFIED.
00031 M01S00030.comcvde +++|* (X2) = 0 IF TO CONVERT DATE.
00032 M01S00031.comcvde +++|* (X2) = 1 IF TO CONVERT TIME.
00033 M01S00032.comcvde +++|* (VDTA) = 0 IF TO USE CURRENT SYSTEM DATE AND TIME AS
00034 M01S00033.comcvde +++|* BASE.
00035 M01S00034.comcvde +++|* (VDTA) = PACKED FORMAT BASE DATE AND TIME IF .NE. 0.
00036 M01S00035.comcvde +++|*
00037 M01S00036.comcvde +++|* EXIT (X6) = 18 BIT PACKED FORMAT DATE OR TIME IF NOT
00038 M01S00037.comcvde +++|* RELATIVE TIME ENTRY.
00039 M01S00038.comcvde +++|* (X6) = 36 BIT PACKED FORMAT DATE AND TIME IF
00040 M01S00039.comcvde +++|* RELATIVE TIME ENTRY.
00041 M01S00040.comcvde +++|* (X6) .LT. 0 IF ERROR IN DATE OR TIME ENTRY.
00042 M01S00041.comcvde +++|* (X1) .LT. 0 IF DATE OR TIME EARLIER THAN BASE DATE AND
00043 M01S00042.comcvde +++|* TIME.
00044 M01S00043.comcvde +++|* (X1) .GE. 0 IF DATE OR TIME LATER THAN BASE DATE AND
00045 M01S00044.comcvde +++|* TIME.
00046 M01S00045.comcvde +++|* (X2) = 0 IF EXPLICIT DATE OR TIME ENTRY.
00047 M01S00046.comcvde +++|* (X2) .NE. 0 IF RELATIVE DATE OR TIME ENTRY.
00048 M01S00047.comcvde +++|* (VDTA) = BASE DATE AND TIME.
00049 M01S00048.comcvde +++|*
00050 M01S00049.comcvde +++|* USES X - 1, 2, 3, 5, 6, 7.
00051 M01S00050.comcvde +++|* A - 1, 2, 6, 7.
00052 M01S00051.comcvde +++|* B - 6, 7.
00053 M01S00052.comcvde +++|*
00054 M01S00053.comcvde +++|* CALLS DXB, EDP, ETP, PDE, PTE, VDT.
00055 M01S00054.comcvde +++|*
00056 M01S00055.comcvde +++|* NOTES THE FOLLOWING RULES ARE USED TO DETERMINE THE VALIDITY
00057 M01S00056.comcvde +++|* OF THE ENTERED DATE AND TIME.
00058 M01S00057.comcvde +++|*
00059 M01S00058.comcvde +++|* 1. A DATE CAN BE ENTERED EXPLICITLY IN YYMMDD FORMAT
00060 M01S00059.comcvde +++|* OR IN ONE OF THE FOLLOWING RELATIVE FORMS -
00061 M01S00060.comcvde +++|*
00062 M01S00061.comcvde +++|* BDNNN NNN = NUMBER OF DAYS BEFORE BASE DATE.
00063 M01S00062.comcvde +++|* ADNNN NNN = NUMBER OF DAYS AFTER BASE DATE.
00064 M01S00063.comcvde +++|* BNNN NNN = NUMBER OF DAYS BEFORE BASE DATE.
00065 M01S00064.comcvde +++|* ANNN NNN = NUMBER OF DAYS AFTER BASE DATE.
00066 M01S00065.comcvde +++|*
00067 M01S00066.comcvde +++|* THE INCREMENT *NNN* IS ONE TO EIGHT DIGITS FOR THE
00068 M01S00067.comcvde +++|* *BD* AND *AD* FORMS AND ONE TO NINE DIGITS FOR THE
00069 M01S00068.comcvde +++|* *B* OR *A* FORM. THE ASSUMED BASE IS DECIMAL. IF
00070 M01S00069.comcvde +++|* A DATE INCREMENT PRODUCES A DATE BEFORE 70/01/01 OR
00071 M01S00070.comcvde +++|* AFTER 33/12/31 THE RESULT WILL BE SET TO 70/01/01
00072 M01S00071.comcvde +++|* OR 33/12/31 RESPECTIVELY.
00073 M01S00072.comcvde +++|*
00074 M01S00073.comcvde +++|* 2. A TIME CAN BE ENTERED EXPLICITLY IN HHMMSS FORMAT
00075 M01S00074.comcvde +++|* OR IN ONE OF THE FOLLOWING RELATIVE FORMS -
00076 M01S00075.comcvde +++|*
00077 M01S00076.comcvde +++|* BDNNN NNN = NUMBER OF DAYS BEFORE BASE DATE AND
00078 M01S00077.comcvde +++|* TIME.
00079 M01S00078.comcvde +++|* ADNNN NNN = NUMBER OF DAYS AFTER BASE DATE AND
00080 M01S00079.comcvde +++|* TIME.
00081 M01S00080.comcvde +++|* BHNNN NNN = NUMBER OF HOURS BEFORE BASE DATE AND
00082 M01S00081.comcvde +++|* TIME.
00083 M01S00082.comcvde +++|* AHNNN NNN = NUMBER OF HOURS AFTER BASE DATE AND
00084 M01S00083.comcvde +++|* TIME.
00085 M01S00001.ns2786 +++|* BMNNN NNN = NUMBER OF MINUTES BEFORE BASE DATE
00086 M01S00002.ns2786 +++|* AND TIME.
00087 M01S00003.ns2786 +++|* AMNNN NNN = NUMBER OF MINUTES AFTER BASE DATE
00088 M01S00004.ns2786 +++|* AND TIME.
00089 M01S00084.comcvde +++|* BSNNN NNN = NUMBER OF SECONDS BEFORE BASE DATE
00090 M01S00085.comcvde +++|* AND TIME.
00091 M01S00086.comcvde +++|* ASNNN NNN = NUMBER OF SECONDS AFTER BASE DATE
00092 M01S00087.comcvde +++|* AND TIME.
00093 M01S00088.comcvde +++|* BNNN NNN = NUMBER OF HOURS BEFORE BASE DATE AND
00094 M01S00089.comcvde +++|* TIME.
00095 M01S00090.comcvde +++|* ANNN NNN = NUMBER OF HOURS AFTER BASE DATE AND
00096 M01S00091.comcvde +++|* TIME.
00097 M01S00092.comcvde +++|*
00098 M01S00093.comcvde +++|* THE INCREMENT *NNN* IS ONE TO EIGHT DIGITS FOR THE
Line S00094 Modification History |
M01 (Added by) | comcvde |
M02 (Updated by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
00099 M02S00094.ns2786 ---|* *BD*, *AD*, *BH*, *AH*, *BS*, AND *AS* FORMS AND
Line S00095 Modification History |
M01 (Added by) | comcvde |
M02 (Updated by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
00100 M02S00095.ns2786 ---|* ONE TO NINE DIGITS FOR THE *B* OR *A* FORM. THE
Line S00096 Modification History |
M01 (Added by) | comcvde |
M02 (Updated by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
00101 M02S00096.ns2786 ---|* ASSUMED BASE IS DECIMAL. A TIME INCREMENT WILL
Line S00097 Modification History |
M01 (Added by) | comcvde |
M02 (Updated by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
00102 M02S00097.ns2786 ---|* PRODUCE A RESULT OF 70/01/01 00.00.00 OR 33/12/31
Line S00098 Modification History |
M01 (Added by) | comcvde |
M02 (Updated by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
00103 M02S00098.ns2786 ---|* 23.59.59 IF THE RESULTING DATE AND TIME IS
Line S00099 Modification History |
M01 (Added by) | comcvde |
M02 (Updated by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
00104 M02S00099.ns2786 ---|* RESPECTIVELY LESS THAN OR GREATER THAN THESE
Line S00100 Modification History |
M01 (Added by) | comcvde |
M02 (Updated by) | ns2786 |
Seq # *Modification Id* Act
----------------------------+
00105 M02S00100.ns2786 ---|* LIMITS.
00106 M01S00005.ns2786 +++|* *BD*, *AD*, *BH*, *AH*, *BM*, *AM*, *BS*, AND *AS*
00107 M01S00006.ns2786 +++|* FORMS, AND ONE TO NINE DIGITS FOR THE *B* OR *A*
00108 M01S00007.ns2786 +++|* FORM. A DECIMAL BASE IS ASSUMED. A TIME INCREMENT
00109 M01S00008.ns2786 +++|* PRODUCES A RESULT OF 70/01/01 00.00.00 OR 33/12/31
00110 M01S00009.ns2786 +++|* 23.59.59 RESPECTIVELY IF THE RESULTING DATE AND
00111 M01S00010.ns2786 +++|* TIME IS LESS THAN OR GREATER THAN THESE LIMITS.
00112 M01S00101.comcvde +++|*
00113 M01S00102.comcvde +++|* A TIME ENTERED IN RELATIVE FORMAT DEFINES BOTH A
00114 M01S00103.comcvde +++|* DATE AND TIME. IT IS THE RESPONSIBILITY OF THE
00115 M01S00104.comcvde +++|* CALLING PROGRAM TO DETECT A CONFLICT IF BOTH A DATE
00116 M01S00105.comcvde +++|* AND AN RELATIVE TIME PARAMETER ARE ENTERED.
00117 M01S00106.comcvde +++|*
00118 M01S00107.comcvde +++|* XREF COMCDTC, COMCDXB, COMCVDT.
00119 M01S00108.comcvde +++|
00120 M01S00109.comcvde +++|
00121 M01S00110.comcvde +++| VDE11 SX6 -1 SET ERROR IN ENTRY
00122 M01S00111.comcvde +++|
00123 M01S00112.comcvde +++| VDE SUBR ENTRY/EXIT
00124 M01S00113.comcvde +++|
00125 M01S00114.comcvde +++|* CHECK FOR EXPLICIT DATE OR TIME ENTRY.
00126 M01S00115.comcvde +++|
00127 M01S00116.comcvde +++| BX6 X1 SAVE ENTERED VALUE
00128 M01S00117.comcvde +++| BX7 X2 SAVE DATE/TIME FLAG
00129 M01S00118.comcvde +++| SA6 VDEC
00130 M01S00119.comcvde +++| SA7 VDED
00131 M01S00120.comcvde +++| RJ VDT CHECK FOR EXPLICIT ENTRY
00132 M01S00121.comcvde +++| SX2 0 SET EXPLICIT ENTRY
00133 M01S00122.comcvde +++| PL X6,VDEX IF VALID DATE OR TIME ENTERED
00134 M01S00123.comcvde +++|
00135 M01S00124.comcvde +++|* UPDATE BASE DATE AND TIME FOR RELATIVE ENTRIES.
00136 M01S00125.comcvde +++|
00137 M01S00126.comcvde +++| SA1 VDTA
00138 M01S00127.comcvde +++| SA2 VDEA
00139 M01S00128.comcvde +++| BX2 X1-X2
00140 M01S00129.comcvde +++| ZR X2,VDE1 IF BASE ELAPSED DAYS AND SECONDS CURRENT
00141 M01S00130.comcvde +++| BX6 X1
00142 M01S00131.comcvde +++| AX1 18
00143 M01S00132.comcvde +++| SA6 VDEA SAVE BASE DATE AND TIME
00144 M01S00133.comcvde +++| RJ PDE COMPUTE BASE ELAPSED DAYS
00145 M01S00134.comcvde +++| SA6 VDEB SET ELAPSED DAYS
00146 M01S00135.comcvde +++| SA1 VDTA COMPUTE BASE ELAPSED SECONDS
00147 M01S00136.comcvde +++| RJ PTE
00148 M01S00137.comcvde +++| SA6 VDEB+1 SET ELAPSED SECONDS
00149 M01S00138.comcvde +++|
00150 M01S00139.comcvde +++|* VALIDATE RELATIVE ENTRY.
00151 M01S00140.comcvde +++|
00152 M01S00141.comcvde +++| VDE1 SA1 VDEC RESTORE DATE OR TIME ENTRY
00153 M01S00142.comcvde +++| SA2 VDED RESTORE DATE/TIME FLAG
00154 M01S00143.comcvde +++| MX6 -6
00155 M01S00144.comcvde +++| LX1 6
00156 M01S00145.comcvde +++| BX7 -X6*X1 ISOLATE *A* OR *B*
00157 M01S00146.comcvde +++| MX6 6
00158 M01S00147.comcvde +++| SB6 X7-1RA SET BEFORE/AFTER FLAG
00159 M01S00148.comcvde +++| SX7 X7-1RB
00160 M01S00149.comcvde +++| ZR B6,VDE2 IF *AFTER* ENTRY
00161 M01S00150.comcvde +++| NZ X7,VDE11 IF NOT *BEFORE* ENTRY
00162 M01S00151.comcvde +++| VDE2 BX3 X6*X1 CHECK UNITS IDENTIFIER
00163 M01S00152.comcvde +++| LX3 6
00164 M01S00153.comcvde +++| SX7 X3-1R0
00165 M01S00154.comcvde +++| SB7 60*60 PRESET SECONDS MULTIPLIER FOR HOURS
00166 M01S00155.comcvde +++| PL X7,VDE4 IF NOT ALPHABETIC
00167 M01S00156.comcvde +++| SX7 X3-1RD
00168 M01S00157.comcvde +++| LX1 6
00169 M01S00158.comcvde +++| ZR X2,VDE3 IF DATE ENTRY
00170 M01S00159.comcvde +++| SX2 X3-1RH
00171 M01S00160.comcvde +++| ZR X2,VDE4 IF HOURS ENTRY
00172 M01S00161.comcvde +++| SX2 X3-1RM
00173 M01S00162.comcvde +++| SB7 60
00174 M01S00163.comcvde +++| ZR X2,VDE4 IF MINUTES ENTRY
00175 M01S00164.comcvde +++| SX2 X3-1RS
00176 M01S00165.comcvde +++| SB7 1
00177 M01S00166.comcvde +++| ZR X2,VDE4 IF SECONDS ENTRY
00178 M01S00167.comcvde +++| SB7 60*60*24
00179 M01S00168.comcvde +++| VDE3 NZ X7,VDE11 IF NOT DAYS ENTRY
00180 M01S00169.comcvde +++|
00181 M01S00170.comcvde +++|* CONVERT RELATIVE ENTRY.
00182 M01S00171.comcvde +++|
00183 M01S00172.comcvde +++| VDE4 MX6 48
00184 M01S00173.comcvde +++| BX5 X6*X1 ISOLATE INCREMENT
00185 M01S00174.comcvde +++| RJ DXB CONVERT INCREMENT
00186 M01S00175.comcvde +++| SA2 VDED RESTORE DATE/TIME FLAG
00187 M01S00176.comcvde +++| NZ X4,VDE11 IF ERROR IN CONVERSION
00188 M01S00177.comcvde +++| ZR X6,VDE5 IF ZERO INCREMENT
00189 M01S00178.comcvde +++| ZR B6,VDE5 IF *AFTER* ENTRY
00190 M01S00179.comcvde +++| BX6 -X6 COMPLEMENT INCREMENT
00191 M01S00180.comcvde +++| SB6 -B1 FLAG BEFORE BASE DATE OR TIME
00192 M01S00181.comcvde +++| VDE5 NZ X2,VDE8 IF TIME ENTRY
00193 M01S00182.comcvde +++| SA1 VDEB
00194 M01S00183.comcvde +++| IX1 X1+X6 ADD DAYS INCREMENT TO BASE
00195 M01S00184.comcvde +++| PL X1,VDE6 IF VALUE .GE. 70/01/01
00196 M01S00185.comcvde +++| SX1 B0 SET MINIMUM VALUE
00197 M01S00186.comcvde +++| EQ VDE7 CONVERT ENTRY
00198 M01S00187.comcvde +++|
00199 M01S00188.comcvde +++| VDE6 SX3 X1-23375-1
00200 M01S00189.comcvde +++| NG X3,VDE7 IF VALUE .LE. 33/12/31
00201 M01S00190.comcvde +++| SX1 23375 SET MAXIMUM VALUE
00202 M01S00191.comcvde +++| VDE7 RJ EDP CONVERT INCREMENTED DATE TO PACKED FORMAT
00203 M01S00192.comcvde +++| SX1 B6 SET BEFORE/AFTER BASE DATE FLAG
00204 M01S00193.comcvde +++| SX2 B1 SET RELATIVE ENTRY FLAG
00205 M01S00194.comcvde +++| EQ VDEX RETURN
00206 M01S00195.comcvde +++|
00207 M01S00196.comcvde +++| VDE8 SA1 VDEB+1 GET BASE DATE AND TIME
00208 M01S00197.comcvde +++| SA2 VDEF
00209 M01S00198.comcvde +++| SX7 B7+ SET SECONDS MULTIPLIER
00210 M01S00199.comcvde +++| IX6 X6*X7
00211 M01S00200.comcvde +++| IX1 X1+X6
00212 M01S00201.comcvde +++| PL X1,VDE9 IF VALUE .GE. 70/01/01 00.00.00
00213 M01S00202.comcvde +++| SX1 B0+ SET MINIMUM VALUE
00214 M01S00203.comcvde +++| EQ VDE10 CONVERT VALUE
00215 M01S00204.comcvde +++|
00216 M01S00205.comcvde +++| VDE9 IX3 X2-X1
00217 M01S00206.comcvde +++| PL X3,VDE10 IF VALUE .LE. 33/12/31 23.59.59
00218 M01S00207.comcvde +++| BX1 X2 SET MAXIMUM VALUE
00219 M01S00208.comcvde +++| VDE10 RJ ETP CONVERT SECONDS TO PACKED DATE AND TIME
00220 M01S00209.comcvde +++| SX1 B6 SET BEFORE/AFTER BASE DATE AND TIME FLAG
00221 M01S00210.comcvde +++| SX2 B1 SET RELATIVE ENTRY FLAG
00222 M01S00211.comcvde +++| EQ VDEX RETURN
00223 M01S00212.comcvde +++|
00224 M01S00213.comcvde +++|
00225 M01S00214.comcvde +++| VDEA CON 0 BASE DATE AND TIME FOR ELAPSED VALUES
00226 M01S00215.comcvde +++| VDEB CON 0 BASE ELAPSED DAYS
00227 M01S00216.comcvde +++| CON 0 BASE ELAPSED SECONDS
00228 M01S00217.comcvde +++| VDEC CON 0 ENTERED VALUE
00229 M01S00218.comcvde +++| VDED CON 0 DATE/TIME FLAG
00230 M01S00219.comcvde +++| VDEF CON 2019686399
00231 M01S00220.comcvde +++|
00232 M01S00221.comcvde +++|
00233 M01S00222.comcvde +++| QUAL$ IF -DEF,QUAL$
00234 M01S00223.comcvde +++| QUAL *
00235 M01S00224.comcvde +++| VDE EQU /COMCVDE/VDE
00236 M01S00225.comcvde +++| QUAL$ ENDIF
00237 M01S00226.comcvde +++| VDE ENDX