The TYPEDEF clause can define an arbitrary data type.
The defined data type is referenced by the TYPE clause.
The TYPEDEF and TYPE clauses are unique to Win32, Winx64, Solaris, Linux, LinuxIPF, Linux64 and .NET.
000010 @OPTIONS MAIN 000020*---------------------------------------------------------------------- 000030* The TYPEDEF clause can define an arbitrary data type. 000040* The defined data type can be referenced by the TYPE clause. 000050* 000060* This sample uses a date type to measure the execution performance of 000065* the ADD statement. 000070*---------------------------------------------------------------------- 000080 IDENTIFICATION DIVISION. 000090 PROGRAM-ID. SAMPLE. 000100 DATA DIVISION. 000110 WORKING-STORAGE SECTION. 000120*---------------------------------------------------------------------- 000130* The TYPEDEF clause is used to define the date type (DATE-EDITED). 000140*---------------------------------------------------------------------- 000150 01 DATE-EDITED TYPEDEF. 000160 02 YEARS PIC 9(4). 000170 02 PIC X(1) VALUE "/". 000180 02 MONTHS PIC 9(2). 000190 02 PIC X(1) VALUE "/". 000200 02 DAYS PIC 9(2). 000210 02 PIC X(1) VALUE " ". 000220 02 HOURS PIC 9(2). 000230 02 PIC X(1) VALUE ":". 000240 02 MINUTES PIC 9(2). 000250 02 PIC X(1) VALUE ":". 000260 02 SECONDS PIC 9(2). 000270 02 PIC X(1) VALUE ".". 000280 02 M-SECS PIC 9(2). 000290*---------------------------------------------------------------------- 000300* The date type defined above can be used by specifying the TYPE 000305* clause. 000310*---------------------------------------------------------------------- 000320 01 STARTED TYPE DATE-EDITED. 000330 01 ENDED TYPE DATE-EDITED. 000340*---------------------------------------------------------------------- 000350 01 WK-DATE. 000360 02 YEARS PIC 9(4). 000370 02 MONTHS PIC 9(2). 000380 02 DAYS PIC 9(2). 000390 02 HOURS PIC 9(2). 000400 02 MINUTES PIC 9(2). 000410 02 SECONDS PIC 9(2). 000420 02 M-SECS PIC 9(2). 000430 01 COUNTER PIC S9(8) VALUE 0. 000440 PROCEDURE DIVISION. 000450 MOVE FUNCTION CURRENT-DATE TO WK-DATE. 000460 MOVE CORR WK-DATE TO STARTED. 000470 DISPLAY "STARTED-TIME IS " STARTED. 000480** 000490 PERFORM 1000000 TIMES 000500 ADD 1 TO COUNTER 000510 END-PERFORM. 000520** 000530 MOVE FUNCTION CURRENT-DATE TO WK-DATE. 000540 MOVE CORR WK-DATE TO ENDED. 000550 DISPLAY "ENDED-TIME IS " ENDED. 000560 EXIT PROGRAM. 000570 END PROGRAM SAMPLE.