× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Try this...

duedate = (%date() + %months(1)) - %days(%subdt(%date() + %months(1):*d)) +
%days(20);

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Birgitta Hauser
Sent: Monday, October 05, 2009 1:41 PM
To: 'RPG programming on the IBM i / System i'
Subject: AW: Calculate the 20th of next month

You may try the following with SQL.

Exec SQL Set :My20st = Last_Day(Current_Date) + 20 Days;

Mit freundlichen Grüßen / Best regards

Birgitta Hauser

"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not training them
and keeping them!"

-----Ursprüngliche Nachricht-----
Von: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] Im
Auftrag von James Perkins
Gesendet: Monday, 05. October 2009 18:48
An: RPG programming on the IBM i / System i
Betreff: Re: Calculate the 20th of next month

I actually just went through this last week.

I ended up using a character date and the substring BIF. This is what
concerned me from the documentation.
"Adding or subtracting a number of months to the 29th, 30th, or 31st day of
a month may not be reversible. For example, 2000-03-31 + %MONTHS(1) -
%MONTHS(1) is 2000-03-30. "

While it might be the 20th now, you never know when that could change and
someone would just replace the number 20 with what they desire.

I created a simple subprocedure that excepted a date, converted it to a
character date, substring the fields you want to change and create a new
date.

charDate = %char(date : *iso);
%subst(charDate : 7 : 2) = '20';
newDate = %date(charDate) - %months(1);
return newDate;

HTH,
--
James R. Perkins
http://twitter.com/the_jamezp


On Mon, Oct 5, 2009 at 09:22, Booth Martin <booth@xxxxxxxxxxxx> wrote:

Another simple task...

I need to calculate the 20 of the next month from today, whatever today
is.

duedate = (%date() + %month(1)) - (%subdt(%date()): *d) + (%days: 20)

Seems like a choice but ... what are some of the other ways that work
easily?


--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing
list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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

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.