Hmm .. nearly. That example using the System Date - the OP was manipulating the Job Date. S/be %Date(*Date) or %Date(Udate).

Here's another approach:

c4 = %char(%SubDt(%Date(*Date) - %Years(1) : *Y));

Just for giggles, this might be slicker:

Dcl-DS DateStr;
  C5  Zoned(4:0);
  C6  Char(4) Overlay(C5);

C5 = *Year - 1;
// C6 contains '2021'

Happy New Year!


On 03/01/2022 10:31, LOGIC IT: Karl FRITZ wrote:

i would resolve it on this way:
dcl-s years packed(4);
years = %subdt( %date : *years ) -1;

This runs.

Happy new year.

-----Ursprüngliche Nachricht-----
Von: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] Im Auftrag von Martin Neugebauer via RPG400-L
Gesendet: Montag, 3. Januar 2022 10:42
An: rpg400-l@xxxxxxxxxxxxxxxxxx
Cc: Martin Neugebauer
Betreff: Compiler bug with *YEAR ? - For Barbara Morris ?

Happy new year to all !

Is this a compiler bug?

**freedcl-s c1 char(4);dcl-s c2 char(4);dcl-s c3 char(4);dcl-s YNum packed(4);
YNum = *year;
c1 = %editc(*year - 1 : 'X'); // Error?
c2 = %editc(YNum - 1 : 'X'); // Error?
YNum = YNum - 1;c3 = %editc(YNum : 'X'); // expected result
*inlr = *on; //-------------------------------------------------------------------
Results:EVAL c1 C1 = '0202' EVAL c2 C2 = '0202' EVAL c3 C3 = '2021' //-------------------------------------------------------------------

Thank you for clarifying!Best regards, Martin Neugebauer

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.