精通COBOL--16.3.7 获取CICS的日期信息
来源:互联网 发布:c语言例题 编辑:程序博客网 时间:2024/06/08 05:43
获取CICS的日期信息同获取时间信息比较类似。日期信息也是依次通过CICS的命令ASKTIME和FORMATTIME得到的。不过在FORMATTIME中,需要指明获取的为日期信息,同时设置日期信息的相应输出格式。例如,以下程序将用于获取日期信息:
IDENTIFICATION DIVISION.
PROGRAM-ID. DATEPGM.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WKAREA.
05 LEN PIC S9(4) USAGE IS COMP.
05 ERR-CODE PIC S9(8) COMP.
05 GETDATE PIC S9(15) COMP-3. /*该变量用于接受日期数据*/
05 DATEOUT PIC X(10). /*该变量用于接受日期格式,并输出日期信息*/
01 INAREA.
05 TRANID PIC X(4).
05 FILLER PIC X.
05 REQUEST PIC X(4).
01 MSG PIC X(80).
*
PROCEDURE DIVISION.
MOVE 9 TO LEN.
EXEC CICS RECEIVE INTO(INAREA)
LENGTH(LEN)
RESP(ERR-CODE)
END-EXEC
IF ERR-CODE = DFHRESP(LENGERR)
MOVE ‘INPUT DATA TOO LONG: MAX IS 9 CHARS’
TO MSG
EXEC CICS SEND CONTROL CURSOR(1760)
END-EXEC
EXEC CICS SEND FROM(MSG)
LENGTH(40)
END-EXEC
EXEC CICS RETURN END-EXEC.
IF REQUEST = ‘DATE’
EXEC CICS ASKTIME ABSTIME(GETDATE)
END-EXEC
EXEC CICS FORMATTIME ABSTIME(GETDATE)
DATESEP
YYYYMMDD(DATEOUT)
END-EXEC
STRING ‘DATE IS: ‘ DATEOUT
DELIMITED BY SIZE INTO MSG
EXEC CICS SEND CONTROL CURSOR(80)
END-EXEC
EXEC CICS SEND FROM(MSG)
LENGTH(20)
END-EXEC
EXEC CICS RETURN END-EXEC.
GOBACK.
以上程序中,将日期的输出格式设置为了“YYYYMMDD”。其中“YYYY”代表4位数字的年份,“MM”代表2位数字的月份,“DD”代表2位数字的日期。在CICS TS版本中,一共支持以下几种日期输出格式:
q YYYYMMDD
q YYYYDDMM
q DDMMYYYY
q MMDDYYYY
q YYYYDDD
需要注意的是,最后一种格式使用“DDD”表示该日期在一年中的绝对天数。例如,对于平年的12月31日,此处使用“365”进行表示。
最后,以下这段程序综合了终端信息、时间信息、日期信息的获取与输出。将该程序连接到相应交易后,用户便可利用这一个交易,通过输入不同的请求而得到不同的信息。该程序代码如下:
IDENTIFICATION DIVISION.
PROGRAM-ID. MIXPGM.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WKAREA.
05 LEN PIC S9(4) USAGE IS COMP.
05 ERR-CODE PIC S9(8) COMP.
05 TSTAMP PIC S9(15) COMP-3.
05 TIMEOUT PIC X(8).
05 DATEOUT PIC X(10).
01 INAREA.
05 TRANID PIC X(4).
05 FILLER PIC X.
05 REQUEST PIC X(4).
01 MSG PIC X(80).
*
PROCEDURE DIVISION.
MOVE 9 TO LEN.
EXEC CICS RECEIVE INTO(INAREA)
LENGTH(LEN)
RESP(ERR-CODE)
END-EXEC
IF ERR-CODE = DFHRESP(LENGERR)
MOVE ‘INPUT DATA TOO LONG: MAX IS 9 CHARS’
TO MSG
EXEC CICS SEND CONTROL CURSOR(1760)
END-EXEC
EXEC CICS SEND FROM(MSG)
LENGTH(40)
END-EXEC
EXEC CICS RETURN END-EXEC.
*
IF REQUEST = ‘TERM’
STRING ‘TERMINAL ID IS: ‘ EIBTRMID
DELIMITED BY SIZE INTO MSG
PERFORM 100-OUTPUT-RESULT
EXEC CICS RETURN END-EXEC.
*
IF REQUEST = ‘TIME’
EXEC CICS ASKTIME ABSTIME(GETTIME)
END-EXEC
EXEC CICS FORMATTIME ABSTIME(GETTIME)
TIMESEP
TIME(TIMEOUT)
END-EXEC
STRING ‘TIME IS: ‘ TIMEOUT
DELIMITED BY SIZE INTO MSG
PERFORM 100-OUTPUT-RESULT
EXEC CICS RETURN END-EXEC.
*
IF REQUEST = ‘DATE’
EXEC CICS ASKTIME ABSTIME(GETTIME)
END-EXEC
EXEC CICS FORMATTIME ABSTIME(GETTIME)
DATESEP
DDMMYYYY(DATEOUT)
END-EXEC
STRING ‘DATE IS: ‘ DATEOUT
DELIMITED BY SIZE INTO MSG
PERFORM 100-OUTPUT-RESULT
EXEC CICS RETURN END-EXEC.
GOBACK.
100-OUTPUT-RESULT.
EXEC CICS SEND CONTROL CURSOR(80)
END-EXEC
EXEC CICS SEND FROM(MSG)
LENGTH(20)
END-EXEC.
- 精通COBOL--16.3.7 获取CICS的日期信息
- 精通COBOL--16.3.5 获取CICS的终端信息
- 精通COBOL--16.3.6 获取CICS的时间信息
- 精通COBOL--16.1.3 CICS的基本操作
- 精通COBOL--16.7 CICS对于文件的操作
- 精通COBOL--16.3.2 使用CICS进行输入输出
- 精通COBOL--16.3 CICS在COBOL中的基本应用
- 精通COBOL--第16章 CICS扩展
- 精通COBOL--16.1.1 CICS简介
- 精通COBOL--16.2 CICS编译处理过程
- 精通COBOL--16.2.1 CICS程序编译流程
- 精通COBOL--16.5 CICS中的程序调用
- 精通COBOL--16.6 CICS中的MAP
- 精通COBOL--16.8 CICS中的队列
- 精通COBOL--16.1.2 CICS中的交易和任务
- CICS-COBOL的异常系统
- 精通cobol--9.1 表的简介
- 精通cobol--9.1.2 表的基本概念
- SQL Server数据导入导出工具BCP详解
- w32.looked.i病毒清除办法
- 精通COBOL--16.3.6 获取CICS的时间信息
- extern用法详解(转)
- hibernate中文参数检索问题
- 精通COBOL--16.3.7 获取CICS的日期信息
- 使用 Express Edition的三种场合
- 使用PsEXEC远程批量更新msdtc使用无安全认证方式
- SQL Server 2005中的ROW_NUMBER和RANK
- C++文件操作
- delphi编程技巧
- 过NP有俩方法
- 精通COBOL--16.4 伪会话程序
- JAVA的难点是什么?JAVA真的有那么难吗?