CBL LIB,QUOTE
*Module/File Name: IGZTQDTC
**************************************************
* Example for callable service CEEQDTC *
* MAINQDTC - Retrieve date and time convention *
* structures for two countries and *
* compare an item. *
* Valid only for COBOL for MVS & VM Release 2 *
* or later. *
**************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. MAINQDTC.
DATA DIVISION.
WORKING-STORAGE SECTION.
* Use DTCONV structure for CEEQDTC calls
COPY CEEIGZDT.
*
PROCEDURE DIVISION.
* Subroutine needed for addressing
CALL "COBQDTC" USING DTCONV.
STOP RUN.
*
IDENTIFICATION DIVISION.
PROGRAM-ID. COBQDTC.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Locale-Name.
02 LN-Length PIC S9(4) BINARY.
02 LN-String PIC X(256).
* Use Locale category constants
COPY CEEIGZLC.
*
01 Test-Length1 PIC S9(4) BINARY.
01 Test-String1 PIC X(80).
01 Test-Length2 PIC S9(4) BINARY.
01 Test-String2 PIC X(80).
01 FC.
02 Condition-Token-Value.
COPY CEEIGZCT.
03 Case-1-Condition-ID.
04 Severity PIC S9(4) BINARY.
04 Msg-No PIC S9(4) BINARY.
03 Case-2-Condition-ID
REDEFINES Case-1-Condition-ID.
04 Class-Code PIC S9(4) BINARY.
04 Cause-Code PIC S9(4) BINARY.
03 Case-Sev-Ctl PIC X.
03 Facility-ID PIC XXX.
02 I-S-Info PIC S9(9) BINARY.
*
LINKAGE SECTION.
* Use Locale structure DTCONV for CEEQDTC calls
COPY CEEIGZDT.
*
PROCEDURE DIVISION USING DTCONV.
* Set up locale for France
MOVE 4 TO LN-Length.
MOVE "FFEY" TO LN-String (1:LN-Length).
* Call CEESETL to set all locale categories
CALL "CEESETL" USING Locale-Name, LC-ALL,
FC.
* Check feedback code
IF Severity > 0
DISPLAY "Call to CEESETL failed. " Msg-No
EXIT PROGRAM
END-IF.
* Call CEEQDTC for French values
CALL "CEEQDTC" USING OMITTED,
ADDRESS OF DTCONV, FC.
* Check feedback code
IF Severity > 0
DISPLAY "Call to CEEQDTC failed. " Msg-No
EXIT PROGRAM
END-IF.
* Save date and time format for FFEY locale
MOVE D-T-FMT-Length IN DTCONV TO Test-Length1
MOVE D-T-FMT-String IN DTCONV TO Test-String1
* Set up locale for French Canadian
MOVE 4 TO LN-Length.
MOVE "FCEY" TO LN-String (1:LN-Length).
* Call CEESETL to set locale for all categories
CALL "CEESETL" USING Locale-Name, LC-ALL,
FC.
* Check feedback code
IF Severity > 0
DISPLAY "Call to CEESETL failed. " Msg-No
EXIT PROGRAM
END-IF.
* Call CEEQDTC again for French Canadian values
CALL "CEEQDTC" USING OMITTED,
ADDRESS OF DTCONV, FC.
* Check feedback code and display results
IF Severity = 0
* Save date and time format for FCEY locale
MOVE D-T-FMT-Length IN DTCONV
TO Test-Length2
MOVE D-T-FMT-String IN DTCONV
TO Test-String2
IF Test-String1(1:Test-Length1) =
Test-String2(1:Test-Length2)
DISPLAY "Same date and time format."
ELSE
DISPLAY "Different formats."
DISPLAY Test-String1(1:Test-Length1)
DISPLAY Test-String2(1:Test-Length2)
END-IF
ELSE
DISPLAY "Call to CEEQDTC failed. " Msg-No
END-IF.
EXIT PROGRAM.
END PROGRAM COBQDTC.
*
END PROGRAM MAINQDTC.