I think IBM should have taken care of this, similar to how they have taken
care of this.

2006-01-31 + %months(1) = 2006--2-28

Also,
2006-01-31 + %months(2) should be consistent with 2006-01-31 + %months(1) +
%months(1)

Adding 2 months or adding 1 month + 1 months should be same right?

I write a lot in Java, and have never came across such a problem.



On 3/27/06, Michael_Schutte@xxxxxxxxxxxx <Michael_Schutte@xxxxxxxxxxxx>
wrote:
>
> You get the same issue when you do it with the date of 3/31/2006 instead
> of
> 1/31/2006
>
> Michael Schutte
> Work 614-492-7419
> email  michael_schutte@xxxxxxxxxxxx
>
>
>
>              "Peter Dow (ML)"
>              <maillist@dowsoft
>              ware.com>                                                  To
>              Sent by:                  RPG programming on the AS400 /
>              rpg400-l-bounces+         iSeries <rpg400-l@xxxxxxxxxxxx>
>              michael_schutte=b                                          cc
>              obevans.com@midra
>              nge.com                                               Subject
>                                        Re: Bug in IBM Date Routies %month
>
>              03/27/2006 04:23
>              PM
>
>
>              Please respond to
>               RPG programming
>               on the AS400 /
>                   iSeries
>              <rpg400-l@midrang
>                   e.com>
>
>
>
>
>
>
> Hi Praveen,
>
> Actually, that's not a bug, it's a problem with intermediate values.
> When you add 1 month to 2006-01-31, what do you get?  2006-02-31 is not
> a valid date; instead you get 2006-02-28 (see the manual).  When you
> then add 1 month to that, you get 2006-03-28.  Date arithmetic is
> tricky...
>
> hth,
>
> Peter Dow
> Dow Software Services, Inc.
> 909 793-9050
>
> praveen gunda wrote:
> > I found the following bug with IBM Date rountines... Was there a fix for
> > this?
> >
> >
> >      Ddate1            s               d   datfmt(*ymd)
> >       /Free
> >        cymd = 20060131;
> >        date1 = %date(cymd:*ISO);
> >        dsply %char( (date1+%months(2)):*iso );
> >        dsply %char( (date1+%months(1)+%months(1)) :*iso);
> >      /End-Free
> >
> >
> > Heres' the output:
> >
> >  DSPLY  2006-03-31
> >  DSPLY  2006-03-28
> >
> > Shouldn't it be 2006-03-31 both the times.
> >
>
> --
> This is the RPG programming on the AS400 / iSeries (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.
>
>
>
> --
> This is the RPG programming on the AS400 / iSeries (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 ...

Follow-Ups:
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.