! //IB// Src(TDT2NUM.IBS) OBJ("TDT2NUM", "ONW") OPT(D) Opt("") ! S TDT2NUM.IBS ! O TDT2NUM,ONW ! L T99,E ! R CED ! ! ! PROGRAM IDENTIFICATION ! ! ! ! SOURCE FILE NAME: TDT2NUM ! ! OBJECT FILE NAME: TDT2NUM ! !******************************************************************************! ! !====================== PROGRAM VARIABLE DECLARATIVES =======================! LENGTH 6 & LOCAL FROMDT6$ LENGTH 8 & LOCAL MMDDYY$, YYMMDD$, ZDATE$, SDATE$, ANS$ LENGTH 10 & LOCAL Z1$ LENGTH 1.0 & LOCAL ERR LENGTH 6.0 & LOCAL ZDYCT TDATE: FORMAT (CS);(SB);@(5,10);'ENTER DATE TO TEST:';(SF);(TM);ZDATE$;(TM);@(5) ! CLEAR LOCAL 3000 CLEARLOCAL PRINT (0) (CS);(ET) PRINT 'BEGIN TNUMTO' PRINT (0,TDATE) INPUT (0) ZDATE$ PRINT 'ZDATE ';ZDATE$ PRINT '' PRINT 'BACK UP 30 DAYS' LET ZDYCT = DATE2NUM(ZDATE$,0) LET ZDYCT = ZDYCT - 30 LET YYMMDD$ = NUM2DATE(ZDYCT,2) ! RETURN YYMMDD LET Z1$ = SUB(YYMMDD$,5,2)+'/'+SUB(YYMMDD$,7,2)+'/'+SUB(YYMMDD$,1,4) LET SDATE$ = SUB(Z1$,1,6) + SUB(Z1$,9,2) PRINT 'ZDATE ';ZDATE$ PRINT 'SDATE ';SDATE$ PRINT 'Z1 ';Z1$ PRINT 'YYMMDD ';YYMMDD$ PRINT 'ZDYCT ';ZDYCT PRINT 'PROMPT USER WITH ANS$ AND VALIDATE' PRINT '' LET ANS$ = SDATE$ LET Z1$ = ANS$ PRINT 'Z1 ';Z1$ PRINT '' ! !---------------------------- DATE VALIDATION ---------------------------------- LET ZDYCT = DATE2NUM(Z1$,0) IF ZDYCT EQ -1 ERROR ! INVALID LET YYMMDD$ = NUM2DATE(ZDYCT,2) ! RETURN YYMMDD LET Z1$ = SUB(YYMMDD$,5,2)+'/'+SUB(YYMMDD$,7,2)+'/'+SUB(YYMMDD$,1,4) !------------------------------------------------------------------------------- FROMDT6$ = SUB(YYMMDD$,3,6) PRINT 'VALIDATED DATE' PRINT 'ZDATE ';ZDATE$ PRINT 'SDATE ';SDATE$ PRINT 'ANS ';ANS$ PRINT 'Z1 ';Z1$ PRINT 'YYMMDD ';YYMMDD$ PRINT 'ZDYCT ';ZDYCT PRINT 'FROMDT ';FROMDT6$ PRINT 'END TNUMTO' WAIT GOTO 9990 ! 9990! RUN 'QMONITOR' END