|
No, you're not doing anything wrong; it's the way subdur works. Here's an
excerpt from the RPG Reference:
"When subtracting a duration in months from a date, the general rule is
that the month portion is decreased by the number of months in the
duration, and the day portion is unchanged. The exception to this is when
the resulting day portion would exceed the actual number of days in the
resulting month. In this case, the resulting day portion is adjusted to
the actual month end date. The following examples (which assume a *YMD
format) illustrate this point.
'95/05/30' SUBDUR 1:*MONTH results in '95/04/30'
The resulting month portion has been decreased by 1; the day portion
is unchanged.
'95/05/31' SUBDUR 1:*MONTH results in '95/04/30'
The resulting month portion has been decreased by 1; the resulting day
portion has been adjusted because April has only 30 days."
The key phrase is "the day portion is unchanged..." Is it a bug or a
feature? It is the way it works. A more reliable way to find the last day
of the previous month is to subtract 1 day from the first of the "current"
month.
It does raise the philosophical question, "How long is a month?"
-----Original Message-----
From: Rajan.Srinivasan@Allfun.com [mailto:Rajan.Srinivasan@Allfun.com]
Sent: Thursday, March 25, 1999 10:24 AM
To: MIDRANGE-L@midrange.com
Subject: Re: ILE - Date Substraction
I tried this. I defined Date1 as a Date Field with (*USA)
format.
DATE1 SUBUR
1:*M DATE1
When I executed the above statements , I get the following results on
DATE1
DATE1(before) DATE1 (after)
03/31/1998 2/28/1998
ok
05/31/1998 04/30/1998
ok
06/30/1998 05/30/1998
not ok
04/30/1998 03/30/1998
not ok
When I input value 06/30/1998 on DATE1 , and after executing
SUBDUR , I get the value 05/30/1998, whereas
I should get 05/31/1998
I am I doing something wrong
Thanks
Raj
VENU YAMAJALA <venu_yamajala@goodyear.com> on 03-24-99 05:50:49 PM
Please respond to MIDRANGE-L@midrange.com
To: MIDRANGE-L@midrange.com
cc: (bcc: Rajan Srinivasan/Servicing/SuperiorBank)
Subject: Re: ILE - Date Substraction
U can do Date1 SUBDUR 1:*M Date2
This will give the last date of previous month if Date1 is last date of
current
month. HTH.
Vg
+---
| 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-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.