×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




Thanks Rick (and Scott).

DUH!  Reading (for the 12th time) from the RPG IV programmers reference:

"The second parameter is the date format for character or numeric input. Regardless
of the input format, the output is returned in *ISO format."

Note the word INPUT, not output, so even the RTFM approach got past these old eyes....

Thanks for re-stating the obvious for me (Hey! You'd make great consultants......!)

Pete



Rick.Chevalier@xxxxxxxxxxxxxxx wrote:

Pete,

Your are right, the %Date statement is incorrect.

In your post you have the value '05/28/2005' as the IFS field value.  If it 
truly has the separators the statement should be

jvDate = %Date(INvDate: *USA);

If it doesn't have separators it would be

jvDate = %Date(INvDate: *USA0);

The date format parameter for the %Date BIF is the input date format not the 
output format.  The output of %Date is always *ISO.  Assigning it to a *JUL 
field causes it to be converted from *ISO to *JUL as well.

Rick

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of Pete Helgren
Sent: Tuesday, June 21, 2005 10:13 AM
To: RPG Midrange Discussion
Subject: Date conversion to Julian - RPG IV rookie..


I thought this was going to be simple but.....

I have an application that reads through IFS records, parses out fields
and then writes them to a physical file using SQL.  I ran into an issue
with the date.  It comes in as MM/DD/CCYY formatted text and I need to
get it to a Julian date (actually a 5 digit number)  So I thought the
following would work (/FREE):

      INvDate = GetNextFld();  //This returns the next field in the IFS
record. In this case lets assume that it returns '05/28/2005'
//convert the MM/DD/CCYY text to a julian date // D spec on the jvDate field is: D jvDate S 6D DATFMT(*JUL)
     // I get an error HERE at run time  RNX0112 - The Date, Time or
Timestamp value is not valid
         jvDate = %Date(INvDate:*JUL0);
     // Then convert the Julian date to char equivalent
         vDate = %Char(jvDate);

I am suspecting that the runtime error is occurring because the program
is assuming *ISO for the date format and it is coming in as *USA.  I
just don't know how to tell  %Date built in that I am formatting a date
FROM *USA to *JUL.  Do I need to add another step so that I first
convert the character field to *USA date and THEN convert that to a *JUL
format? Like:

    InvDate = GetNxtfld();
     USAdate = %date(INvDate: *USA);
    jvDate = %Date(USADate:*JUL);

Again, I am a little bit new to RPG IV (liking it though) so perhaps I
am just using %Date wrong.....

Thanks,

Pete Helgren

Privileged and Confidential.  This e-mail, and any attachments there to, is 
intended only for use by the addressee(s) named herein and may contain 
privileged or confidential information.  If you have received this e-mail in 
error, please notify me immediately by a return e-mail and delete this e-mail.  
You are hereby notified that any dissemination, distribution or copying of this 
e-mail and/or any attachments thereto, is strictly prohibited.


This thread ...

Follow-Ups:
Replies:

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

This mailing list archive is Copyright 1997-2026 by midrange.com 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.