July 03, 2008, 03:47 PM
Francis MarianiConvert your input fields to Date-Time and then use Standard Date-Time functions:
-*-- Create the master for TEST -------------------------
APP FI DATAMAST DISK TEST.MAS
-RUN
-WRITE DATAMAST FILE=TEST, SUFFIX=FIX, $
-WRITE DATAMAST SEGNAME=SEG1, SEGTYPE=S0, $
-WRITE DATAMAST FIELD=START_DT, ALIAS=E01, USAGE=A08, ACTUAL=A08, $
-WRITE DATAMAST FIELD=FILL1 , ALIAS=E02, USAGE=A01, ACTUAL=A01, $
-WRITE DATAMAST FIELD=START_TM, ALIAS=E03, USAGE=A05, ACTUAL=A05, $
-WRITE DATAMAST FIELD=FILL2 , ALIAS=E04, USAGE=A01, ACTUAL=A01, $
-WRITE DATAMAST FIELD=DURATION, ALIAS=E03, USAGE=A05, ACTUAL=A05, $
-*-- Create the data file for TEST ----------------------
FILEDEF TEST DISK TEST.FTM
-RUN
-WRITE TEST 07/01/08 23:06 02:08
SET DEFCENT = 20
-RUN
DEFINE FILE TEST
START_DT1/A6MDY = EDIT(START_DT,'99$99$99');
START_DT2/MDYY = START_DT1;
START_DT3/A8YYMD = START_DT2;
START_DTTMX/A25 = START_DT3 | ' ' | START_TM | ':00.000';
START_DTTM/HYYMDS = HINPUT(25, START_DTTMX, 8, 'HYYMDS');
DURATION_HH/A2 = EDIT(DURATION,'99$$$');
DURATION_MI/A2 = EDIT(DURATION,'$$$99');
DURATION_MINS/D6 = (EDIT(DURATION_HH) * 60) + EDIT(DURATION_MI);
END_DTTM/HYYMDS = HADD(START_DTTM, 'MINUTE', DURATION_MINS, 8, 'HYYMDS');
END
TABLE FILE TEST
PRINT
START_DT
START_TM
START_DTTM
-*START_DT1
-*START_DT2
-*START_DT3
-*START_DTTMX
DURATION
-*DURATION_HH
-*DURATION_MI
DURATION_MINS
END_DTTM
END
-RUN
Francis
Give me code, or give me retirement. In FOCUS since 1991
Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
July 11, 2008, 09:24 AM
lanjunquote:
-*-- Create the master for TEST -------------------------
APP FI DATAMAST DISK TEST.MAS
-RUN
-WRITE DATAMAST FILE=TEST, SUFFIX=FIX, $
-WRITE DATAMAST SEGNAME=SEG1, SEGTYPE=S0, $
-WRITE DATAMAST FIELD=START_DT, ALIAS=E01, USAGE=A08, ACTUAL=A08, $
-WRITE DATAMAST FIELD=FILL1 , ALIAS=E02, USAGE=A01, ACTUAL=A01, $
-WRITE DATAMAST FIELD=START_TM, ALIAS=E03, USAGE=A05, ACTUAL=A05, $
-WRITE DATAMAST FIELD=FILL2 , ALIAS=E04, USAGE=A01, ACTUAL=A01, $
-WRITE DATAMAST FIELD=DURATION, ALIAS=E03, USAGE=A05, ACTUAL=A05, $
-*-- Create the data file for TEST ----------------------
FILEDEF TEST DISK TEST.FTM
-RUN
-WRITE TEST 07/01/08 23:06 02:08
SET DEFCENT = 20
-RUN
DEFINE FILE TEST
START_DT1/A6MDY = EDIT(START_DT,'99$99$99');
START_DT2/MDYY = START_DT1;
START_DT3/A8YYMD = START_DT2;
START_DTTMX/A25 = START_DT3 | ' ' | START_TM | ':00.000';
START_DTTM/HYYMDS = HINPUT(25, START_DTTMX, 8, 'HYYMDS');
DURATION_HH/A2 = EDIT(DURATION,'99$$$');
DURATION_MI/A2 = EDIT(DURATION,'$$$99');
DURATION_MINS/D6 = (EDIT(DURATION_HH) * 60) + EDIT(DURATION_MI);
END_DTTM/HYYMDS = HADD(START_DTTM, 'MINUTE', DURATION_MINS, 8, 'HYYMDS');
END
TABLE FILE TEST
PRINT
START_DT
START_TM
START_DTTM
-*START_DT1
-*START_DT2
-*START_DT3
-*START_DTTMX
DURATION
-*DURATION_HH
-*DURATION_MI
DURATION_MINS
END_DTTM
END
-RUN