I did miss that. I'm assuming that MyDate is a real date field or, at
least, always the same type??
What about....
JoinDate( MyDate : %int(myYear) : : %int(myMonth) : %int(myDay);
I'd still do SplitDate() with integer components. If you need to change
them after the fact, just deal with that.
Two procedures....
0jsalazarm@xxxxxxxxxxxxx 01/12/2010 11:51:09 AM >>>
Roger, the problem is that our date fields are stored YY, MM DD
components with packed/zoned/integer and binary types. To modify
parameters by reference I'd need one procedure for each combination.
I doubt anyone here knows why we have that mishmash of types.
--
Saludos
Antonio Salazar
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Roger Harman
Sent: Tuesday, January 12, 2010 1:37 PM
To: rpg400-l@xxxxxxxxxxxx
Subject: RE: RPG overloading (was RPGV?)
There is no law that says a procedure can't modify parameters. You can
do PRECISELY what you want as stated.
MyDate = JoinDate(YY : MM : DD);
-or-
JoinDate(MyDate : YY : MM : DD);
SplitDate(MyDate : YY : MM : DD);
Jon and/or Susan have written articles discussing this.
0jsalazarm@xxxxxxxxxxxxx 01/12/2010 11:05:20 AM >>>
Precisely, I wanted the procedure to receive a date and three numerical
parameters and return YY, MM and DD on the numerical fields, that would
have been a very clean way to handle our mess of date fields.
It could have been done by calling three procedures with the same date,
but the solution started to look worse than the remedy. We settled for
DSs and %BIFs instead of procedures, although it would have been great
to manage the date conversions with just two procedures.
Instead of arithmetic and BIFs I wanted something like this:
MyDate = JoinDate(YY, MM, DD);
SplitDate(MyDate, YY, MM, DD);
--
Saludos
Antonio Salazar
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of rob@xxxxxxxxx
Sent: Tuesday, January 12, 2010 12:51 PM
To: RPG programming on the IBM i / System i
Subject: RE: RPG overloading (was RPGV?)
Well, if you returned the variable in the parms and not the return field
I
can see where you'd have difficulty. But if you did
mm=%subdt(current date:*months);
yy=%subdt(current date:*Y) - (%int(%subdt(current date:*Y)/100)) * 100;
dd=%subdt(current date:*days);
wouldn't that work regardless of mm was packed, zoned, integer or
whatever?
Rob Berendt
As an Amazon Associate we earn from qualifying purchases.