|
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-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.