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.