|
Check out the date features of the TEST opcode. You can test numeric or character variables before moving them into date fields. Here's the example code from the ILE RPG Reference Manual: D D Datefield S D DATFMT(*JIS) D Num_Date S 6P 0 INZ(910921) D Num_Time S 8 INZ('13:05 PM') D Char_Date S 6 INZ('041596') D Char_Tstmp S 20 INZ('19960723140856834000') D CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq.. * * Indicator 18 will not be set on since the character field is a * valid *ISO timestamp field, without separators. C *ISO0 TEST (Z) Char_Tstmp 18 * Indicator 19 will not be set on since the character field is a * valid *MDY date, without separators. C *MDY0 TEST (D) Char_Date 19 * * Indicator 20 is set since Date1 is not *DMY More... * C *DMY TEST (D) Num_Date 20 * * No Factor 1 since result is a D data type field * Indicator 21 will not be set on since the field * contains a valid date C C TEST Datefield 21 C * In the following test indicator 22 will be set on since the * Timefield does not contain a valid USA time C C *USA TEST (T) Num_Time 22 > -----Original Message----- > From: Rajan.Srinivasan@Allfun.com [mailto:Rajan.Srinivasan@Allfun.com] > Sent: Friday, January 22, 1999 1:32 PM > To: MIDRANGE-L@midrange.com > Subject: Re: Built in Function ILE RPG > > > Thanks Eric, it works fine. I can able to cut one more extra code. > > There is one more point I did'nt mention. > > > 1. Moving the numerical value ( 8, 0) to DATE STAMP > Field with > (> Date format *USA) > > On the above statement, by any chance if there is some > invalid date like > Februry 30, then > the program is boming out with run time message. > > For that , before executing the above statement, I am evaluating for > invalid date which runs almost 10+ statments. > > Is there any better way for this. > > Thanks again > > Regards > > Raj > > > > > > > > "Eric DeLong" <eric.delong@pmsi-services.com> on 01-22-99 10:02:57 AM > > Please respond to MIDRANGE-L@midrange.com > > To: MIDRANGE-L@midrange.com > cc: (bcc: Rajan Srinivasan/Servicing/SuperiorBank) > Subject: Re: Built in Function ILE RPG > > > > > > Raj, > Take a look at the MOVE opcode. There was a lot of > extended support > added for moving numeric/character dates and times into date and > time fields. All you'll need is your *ISO date field and a > statement like: > C *USA Move NUMDAT NEWDATE > eric.delong@pmsi-services.com > > ______________________________ Reply Separator > _________________________________ > Subject: Built in Function ILE RPG > Author: <MIDRANGE-L@midrange.com > at INET_WACO > Date: 1/22/99 1:43 PM > > Friends, > Could you please help me on this. > Actually, I am > trying to convert a numerical variable from > MMDDCCYY format to CCYYMMDD . ( and Vice versa ) > Even though , we can do this by using data structure, I > would rather like > to use the new functioanality of ILE RPG. > For that, I have tried using date stamp field. > 1. Moving the numerical value ( 8, 0) to DATE STAMP > Field with ( > Date format *USA) > 2. Moving Date Stamp Field ( *USA) TO another date > stamp field > (*ISO) > 3. Finally, moving Date Stamp Filed (*ISO) TO > Result Field ( > Numerical variable with 8, 0 ) > > The above method works fine. > > I was looking around for other better methods, because in > RPG/400, it is > just one statement ( multiplying by 10000.01), > but in ILE RPG it takes three statement and two more > additional work > field declaration ( Date stamp field). > > Could you please tell me , is there any other better methods > like using > Built in function.? > Can we create our own built-in function?. > Any help is greatly appriciated. > Thanks > Regards > Raj > > > > > > > +--- > | This is the Midrange System Mailing List! > | To submit a new message, send your mail to MIDRANGE-L@midrange.com. > | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. > | To unsubscribe from this list send email to > MIDRANGE-L-UNSUB@midrange.com. > | Questions should be directed to the list owner/operator: > david@midrange.com > +--- > > > +--- > | This is the Midrange System Mailing List! > | To submit a new message, send your mail to MIDRANGE-L@midrange.com. > | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. > | To unsubscribe from this list send email to > MIDRANGE-L-UNSUB@midrange.com. > | Questions should be directed to the list owner/operator: > david@midrange.com > +--- > > > > > > > +--- > | This is the Midrange System Mailing List! > | To submit a new message, send your mail to MIDRANGE-L@midrange.com. > | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. > | To unsubscribe from this list send email to > MIDRANGE-L-UNSUB@midrange.com. > | Questions should be directed to the list owner/operator: > david@midrange.com > +--- > +--- | This is the Midrange System Mailing List! | To submit a new message, send your mail to MIDRANGE-L@midrange.com. | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. | To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 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.