![]() |
||||||||||||
Go ![]() | New ![]() | Search ![]() | Notify ![]() | Tools ![]() | Reply ![]() | ![]() |
Gold member |
I have an A6 field called "TERM" in the form YYYYMM i.e. 200601. I have a second YYMD field called "DATE". DATEDIF accepts arguments like DATEDIF(DATE, 'Sep 1 2006, 'D') Using this logic, I thought I'd calculate age by making the following defines: TEMP_MONTH/A6=IF SUBSTR(6, TERM, 5, 6, 2, 'A2') LE '01' THEN 'Jan 1 ' ELSE IF SUBSTR(6, TERM, 5, 6, 2, 'A2') LE '05' THEN 'May 1 ' ELSE 'Sep 1 '; TEMP_YEAR/A4=SUBSTR(6, TERM, 1, 4, 4, 'A4'); AGE/D12.2=DATEDIF( DATE, TEMP_MONTH | TEMP_YEAR , 'D' ) / 365.25; This spits out the error: 0 ERROR AT OR NEAR LINE 8 IN PROCEDURE TEST_TRN58FOCEXEC * (FOC36355) INVALID TYPE OF ARGUMENT #2 FOR USER FUNCTION DATEDIF (FOC101) ERROR IN DEFINE IN MASTER FILE: APPLICATIONS/APP_APPLICATIONS_REGS_PRE What am I doing wrong? Any help would be awesome, thanks.This message has been edited. Last edited by: FP Mod Chuck, WebFocus 8.104 Windows 7 Entreprise, SP1 | ||
|
Expert |
Because your DATE field is format YYMD, I would suggest converting your TERM field to a smart date, YYMD, then just subtract one from the other. TABLE FILE CAR PRINT COMPUTE TERM/A6 = '200601' ; COMPUTE DATE/YYMD = &YYMD ; COMPUTE TERMDATE/YYMD = DATECVT(TERM,'A6YYM','YYM'); COMPUTE AGE/D12.2 = (DATE - TERMDATE) / 365.25 ; BY COUNTRY NOPRINT Waz...
| |||||||||||||||||||||||||||
|
Gold member |
Waz the migrator accepts those but the problem is that the math is screwed up. BIRTHDATE = 1976/08/29 TERM = 201709 TERM_DATE = DATECVT(TERM,'A6YYM','YYM') = 2017/09 AGE = DATEDIF( TERM_DATE, BIRTH_DATE , 'D' ) / 365.25 = 71.82 Using AGE =DATEDIF( TERM_DATE, BIRTH_DATE , 'M' ) / 12 = 71.75 One would think I'd get 43 plus a bit. WebFocus 8.104 Windows 7 Entreprise, SP1 | |||
|
Expert |
With this I get 41.01, which seems correct TABLE FILE CAR PRINT COMPUTE TERM/A6 = '201709' ; COMPUTE DATE/YYMD = '1976/08/29' ; COMPUTE TERMDATE/YYMD = DATECVT(TERM,'A6YYM','YYM'); COMPUTE AGE/D12.2 = (TERMDATE - DATE) / 365.25 ; BY COUNTRY NOPRINT END Waz...
| |||||||||||||||||||||||||||
|
Gold member |
Waz, hmm. I looked further and in the migrator had my TERM_DATE field formatted as YYM instead of YYMD. Works fine now. WebFocus 8.104 Windows 7 Entreprise, SP1 | |||
|
Expert |
![]() Waz...
| |||||||||||||||||||||||||||
|
Powered by Social Strata |
![]() | Please Wait. Your request is being processed... |
|