Focal Point
[SOLVED] How to have proper previous day when first day of month

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/9377084176

July 01, 2014, 11:19 AM
MartinY
[SOLVED] How to have proper previous day when first day of month
Hi,
I know that it,s probably been discussed many times, but I can't find it.

How can I have the proper previous day when we're the first of the month ?

I've used:
-SET &PDAY = DATEADD (&YYMD, 'DAY', -1);
-TYPE &PDAY

But it gives me 20140700 when &YYMD = 20140701, it's supposed to be 20140630...

I also tried with DATEMOV(&YYMD, 'WD-') but it stays the same date.

Thanks for your help and reminder :-)

This message has been edited. Last edited by: MartinY,


WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDF
In Focus since 2007
July 01, 2014, 11:50 AM
jfr99
Hi,

Take a look at the AYMD function ... run this:

-*
-SET &PDAY = DATEADD (&YYMD, 'DAY', -1);
-SET &N_PDAY = AYMD (&YYMD, -1, 'I8YYMD');
-*
-TYPE YYMD ------- &YYMD
-TYPE PDAY ------- &PDAY
-TYPE N_PDAY ----- &N_PDAY


WebFocus 8.201M, Windows, App Studio
July 01, 2014, 11:53 AM
diogopc
jfr99's code is much prettier but here goes my aproach anyway:

-SET &PDAY_V2 = &YYMD;
-SET &PDAY_V2 = DATECVT(&PDAY_V2.EVAL, 'I8YYMD', 'YYMD');
-SET &PDAY_V2 = DATEADD(&PDAY_V2,'D',-1);
-SET &PDAY_V2 = DATECVT(&PDAY_V2.EVAL, 'YYMD', 'I8YYMD');
-SET &PDAY_V2 = EDIT(&PDAY_V2,'9999/99/99');

-TYPE &PDAY_V2



WebFOCUS App Studio 8103
Windows7
All outputs
July 01, 2014, 12:56 PM
MartinY
Thanks, I knew that I would find an answer :-)


WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDF
In Focus since 2007
July 01, 2014, 02:04 PM
jfr99
Here's another way:

-SET &PRV_YYMD = DATECVT((DATEADD((DATECVT (&YYMD, 'I8YYMD', 'YYMD')),'D', -1)), 'YYMD','I8YYMD');


WebFocus 8.201M, Windows, App Studio
July 01, 2014, 05:56 PM
Waz
DATEADD only works on Smartdates.

As &YYMD is just a number and not a date, you need to use AYMD, as works on legacy dates.


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!