PL/I和COBOL如何取得当天的日期

在Mainframe上做开发会经常遇到用PL/I或者COBOL取得当天的日期,对于PL/I,一般的公司都采取如下的做法:

DCL PIC_TODAY            PIC'999999' INIT(0);
PIC_TODAY  = DATE;
IF SUBSTR(DATE,1,2) > '50'                
  THEN TODAYS_DATE = 19000000 + PIC_TODAY;
  ELSE TODAYS_DATE = 20000000 + PIC_TODAY;

我所在的公司也是这种写法来获得YYYYMMDD格式的当日日期,很明显这种写法代码的寿命只有几十年了,相比之下COBOL获得YYYYMMDD格式的当日日期就显得方便得多,一个ACCEPT语句即可:

WORKING-STORAGE SECTION.
01 TODAYS-DATE                          PIC 9(08).
.
.
.
PROCEDURE DIVISION.
ACCEPT TODAYS-DATE FROM DATE YYYYMMDD

Comments !