Chinaunix

标题: 新手简单的问题 [打印本页]

作者: ma19860119    时间: 2008-10-22 22:00
标题: 新手简单的问题
在RPG里单独取系统日期的年 月 日,怎么取啊?

我的方法是:
D DATE                                 D            INZ(*SYS)
D CHAR                             10A

C                    MOVEL         DATE              CHAR
C                    EVAL            YEAR=%SUBST(CHAR:1:4)
C                    EVAL            MONTH=%SUBST(CHAR5:6)
C                    EVAL            DAY    =%SUBST(CHAR:7:8)


不知道对不对啊//

希望前辈多指点啊,我还在学习中
作者: roden    时间: 2008-10-23 09:40
也算是方法之一吧,一般都是在D(或I)表里定义一个结构,而不用取子串实现.
另,只是取系统值的话,可以使用UYEAR/*YEAR   UMONTH/*MONTH   UDAY/*DAY
作者: fairyboy    时间: 2008-10-24 09:13
呵呵,我也是用分段截取的,用TIME后,直接截取几位.
作者: fusl520    时间: 2008-10-24 14:38
DDSDATE           DS                                                   
D  DSYEAR                 1      4  0                                 
D  DSMNTH                5      6  0                                 
D  DSDAY                   7      8  0                                 
C                   Z-ADD     *YEAR         DSYEAR                     
C                   Z-ADD     *MONTH        DSMNTH                     
C                   Z-ADD     *DAY          DSDAY                     
C     DSDATE        DSPLY                //20081024                              
C     DSYEAR        DSPLY                //2008                             
C     DSMNTH        DSPLY               //10                              
C     DSDAY         DSPLY                 //24                             
C                   SETON                                            LR
作者: tianya0229    时间: 2008-10-24 15:50
标题: 回复 #1 ma19860119 的帖子
在RPG里有系统值可以获取。UMONTH,*MONTH ;UDAY,*DAY;UYEAR/*YEAR   可以直接用上。只要定义一个变量接收就好。
作者: 震动计    时间: 2008-10-27 11:29

作者: xjromance    时间: 2008-11-20 10:49
D FLD01 S D
D FLD02 S T
C MOVE *DATE FLD01
C TIME FLD02

 EXTRCT FLD01:*Y FLDYEAR
 EXTRCT FLD02:*H FLDHOUR

假设变量FLDYEAR 为四位字符型、FLDHOUR 为两位数字型
作者: fxf_china    时间: 2008-11-20 12:23
楼主的方法默认日期系统格式是*ISO,但这是靠不住的,应该定义DATE时指定格式
D DATE                                 D            INZ(*SYS) DATFMT(*ISO)

建议用2楼和7楼的方法

另外%SUBST最后的参数应该是指长度,而不是绝对位置




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2