PUNCH 'CATALOG DATEDIFF.OBJ R=Y' DATEDIFF START 0 ********************************************************************** * THIS SUBPROGRAM TAKES TWO DATES (YYYYMMDD) AND RETURNS THE NUMBER * * OF DAYS DIFFERENT BETWEEN THEM. * * * * INPUT: CL8 YYYYMMDD DATE 1. * * INPUT: CL8 YYYYMMDD DATE 2. * * OUTPUT: PL4 PACKED (DIFFERENCE). RETURN X'FF'S IF INPUT IS * * INVALID. * * * * PROGRAMMER: BILL BLASINGIM * * WRITTEN : NOVEMBER 8, 1995 * ********************************************************************** PRINT NOGEN SAVE (14,12) START BALR 12,0 USING *,12 ST R13,SAVEAREA+4 LA R13,SAVEAREA LM R4,R6,0(1) * R4 = ADDRESS OF JULIAN DATE 1 (INPUT) * R5 = ADDRESS OF JULIAN DATE 2 (INPUT) * R6 = ADDRESS OF DAYS DIFFERENT (OUTPUT) * MVC DATE1,0(R4) CALL DATENUM,(DATE1,DAYS1,WEEKDAY) CLC WEEKDAY,=H'7' * CLC DAYS1,=X'0000000C' BE BADNUM MVC DATE2,0(R5) CALL DATENUM,(DATE2,DAYS2,WEEKDAY) CLC WEEKDAY,=H'7' * CLC DAYS2,=X'0000000C' BE BADNUM SP DAYS2,DAYS1 ZAP 0(4,R6),DAYS2 GOBACK L R13,SAVEAREA+4 RETURN (14,12) BADNUM EQU * MVC 0(4,R6),=XL4'FFFFFFFF' B GOBACK ********************************************************************** * * * S T O R A G E A R E A * * * ********************************************************************** DS 0D DATE1 DS CL8 YYYYMMDD DAYS1 DS PL4 # OF DAYS DATE2 DS CL8 YYYYMMDD DAYS2 DS PL4 # OF DAYS WEEKDAY DS H SAVEAREA DS 9D REGEQU END START