Re: Possible bug in PGInterval class

Поиск
Список
Период
Сортировка
От Ľubomír Varga
Тема Re: Possible bug in PGInterval class
Дата
Msg-id 200909022101.43692.luvar@plaintext.sk
обсуждение исходный текст
Ответ на Re: Possible bug in PGInterval class  (Kris Jurka <books@ejurka.com>)
Список pgsql-jdbc
On Wednesday 02 September 2009 02:01:11 Kris Jurka wrote:
>...
> > Second, critical for me, is to not using modulo in addition. So if you
> > add 55 minutes to 55 minutes, you get 110 minutes instead of 1 hour and
> > 50 minutes.
>
> For minutes and hours, it would be OK, but when rolling hours into days or
> days into months, context is needed to know if you are near a daylight
> saving time change or how many days are in the month.  For this reason we
> don't manipulate the values and leave them as is.
>

What about to add some function which will "normalize" interval and make
minutes lees than 60, hours lees than 24 and seconds lees than 60? I do it
like this:

        PGInterval duration = ...;
        int add = 0;
        if(duration.getSeconds() > 60) {
            add = (int)Math.floor(duration.getSeconds() / 60);
            duration.setSeconds(duration.getSeconds() - (add * 60));
            duration.setMinutes(duration.getMinutes() + add);
        }
        if(duration.getMinutes() > 60) {
            add = duration.getMinutes() / 60;
            duration.setMinutes(duration.getMinutes() - (add * 60));
            duration.setHours(duration.getHours() + add);
        }

        if(duration.getHours() > 24) {
            add = duration.getHours() / 24;
            duration.setHours(duration.getHours() - (add * 24));
            duration.setDays(duration.getDays() + add);
        }

Just an suggestion for future generations of developers which will use
PGInterval for postprocessing selected data like me...

PS: Thanks for explanation, I fully accept that reason.

--
Odborník na všetko je zlý odborník. Ja sa snažím byť výnimkou potvrdzujúcou
pravidlo.

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Kris Jurka
Дата:
Сообщение: Re: PATCH: SET ROLE as connection parameter
Следующее
От: Maciek Sakrejda
Дата:
Сообщение: Re: PGStream synchronization