DSPF の右上端などに今日の日付( UDATE ) を表示するケースはよくある。
A 4 22DATE EDTCDE(Y)
のように DDS で DATE
キー・ワードを使うと今日の日付( UDATE ) が画面に表示されることは
良く知られている。
しかし 「14/12/25」のように西暦の 20 を省略する表示は 2000 年問題以降は
( 2000年問題が知らない人は先輩に訪ねてください。)
西暦表示も「2014/12/25」のように省略しないで表示することが一般的である。
そこで 8 桁の今日の日付を表示する方法をここで紹介する。
A 6 22DATE(*YY) EDTCDE(W)
のように DATE
キー・ワードの拡張パラメータとして *YY
を指定すると 8 桁の日付として
表示される。
ただし 8 桁日付の編集コードは Y ではなく、 W を使用すること。
0001.00 A*%%TS SD 19940302 221529 QTR REL-V2R2M0 5738-PW1 0002.00 A* 11:59:33 QSECOFR REL-R06M00 5714-UT1 0003.00 A*%%EC 0004.00 A DSPSIZ(24 80 *DS3) 0005.00 A MSGLOC(24) 0006.00 A PRINT 0007.00 A R DSPDTA01 0008.00 A*%%TS SD 19940302 221529 QTR REL-V2R2M0 5738-PW1 0009.00 A TEXT(' 明細画面 01') 0010.00 A CF03(03 ' 終了 ') 0011.00 A SETOF(99) 0012.00 A KEEP 0013.00 A BLINK 0014.00 A 1 27' 日付フィールドのテスト ' 0015.00 A DSPATR(RI) 0016.00 A 4 2' 6桁の日付 (DATE)' 0017.00 A 4 22DATE EDTCDE(Y) 0018.00 A 4 34'( EDTCDE(Y) )' 0019.00 A 6 2' 8桁の日付 (DATE)' 0020.00 A 6 22DATE(*YY) EDTCDE(W) 0021.00 A 6 34'( EDTCDE(W) )' 0022.00 A 23 2'F3= 終了 '
001.00 PGM 002.00 /*---------------------------------------------------------*/ 003.00 /* TESTDATECL : 日付フィールドのテスト */ 004.00 /*---------------------------------------------------------*/ 005.00 DCLF FILE(TEST.COM/TESTDATEFM) 006.00 DCL VAR(&UDATE) TYPE(*CHAR) LEN(10) 007.00 008.00 DSPLY: SNDRCVF RCDFMT(DSPDTA01) 009.00 IF COND(&IN03 *EQ '1') THEN(RETURN) 010.00 GOTO DSPLY 011.00 012.00 ENDPGM