|
That's worth a try. I never even thought of that. Here's an example of
something the program does many times. In looking at it now, I think I even
TEST(D E) endDate further down in the process which makes no sense! The
routine is done thousands of times and the other routine gets into the
millions. Might make a difference. Thank you.
* test for valid date.
c test(d e) XQ03
c if not %error
* if XQ03's week ending date is beyond today, set the week start/end to
* the previous week's
c if #getWkEndDate( %date(XQ03) ) > jobDate
c eval beginDate = #getPrvWkStart( jobDate )
c eval endDate = #getPrvWkEnd( jobDate )
c move endDate endDate#
* else set valid week start and end dates
c else
c eval beginDate = #getWkStrDate( %date(XQ03) )
c eval endDate = #getWkEndDate( %date(XQ03) )
c endif
* else invalid date, set week start/end dates to previous week
c else
c eval beginDate = #getPrvWkStart( jobDate )
c eval endDate = #getPrvWkEnd( jobDate )
c endif
-----Original Message-----
From: Hans Boldt [mailto:boldt@xxxxxxxxxx]
Sent: Thursday, May 15, 2003 9:12 AM
To: rpg400-l@xxxxxxxxxxxx
Subject: Re: Date arithmetic - performance dog?
Mlpolutta@xxxxxxx wrote:
> I wanted to see if you folks have found that ADDDUR and SUBDUR (etc.), and
> MOVEing to/from date fields are REALLY poor performers - it sure seems that
> way to me. Is there a way to make such things perform well?
The performance of the date/time/timestamp operations is indeed a
touch on the slow side. The reason is that each operation does a
validity check on the values.
The only suggestion I have is that if you're converting from
character or numeric to a D/T/Z value, don't check first using a
TEST operation. Just convert directly using the appropriate built-in
function (%DATE, %TIME, or %TIMESTAMP) wrapped in a MONITOR group.
That will at least save one validity check.
For example:
MONITOR;
DATE=%DATE(DSTR:*YMD);
ON-ERROR 112;
DSPLY 'Egads! We have a bad date value!';
ENDMON;
Cheers! Hans
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.