diff --git a/src/backend/utils/adt/dt.c b/src/backend/utils/adt/dt.c index bab4873fc1fef929817e46438381fc06a9a8c4de..a9ae4eebe379bd784298886e27f22b1f9c2344e0 100644 --- a/src/backend/utils/adt/dt.c +++ b/src/backend/utils/adt/dt.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/dt.c,v 1.79 2000/01/02 02:32:37 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/dt.c,v 1.80 2000/01/04 07:53:27 thomas Exp $ * *------------------------------------------------------------------------- */ @@ -787,6 +787,7 @@ datetime_mi(DateTime *datetime1, DateTime *datetime2) * To add a month, increment the month, and use the same day of month. * Then, if the next month has fewer days, set the day of month * to the last day of month. + * Lastly, add in the "quantitative time". */ DateTime * datetime_pl_span(DateTime *datetime, TimeSpan *span) @@ -815,12 +816,6 @@ datetime_pl_span(DateTime *datetime, TimeSpan *span) { dt = (DATETIME_IS_RELATIVE(*datetime) ? SetDateTime(*datetime) : *datetime); -#ifdef ROUND_ALL - dt = JROUND(dt + span->time); -#else - dt += span->time; -#endif - if (span->month != 0) { struct tm tt, @@ -853,6 +848,12 @@ datetime_pl_span(DateTime *datetime, TimeSpan *span) DATETIME_INVALID(dt); } +#ifdef ROUND_ALL + dt = JROUND(dt + span->time); +#else + dt += span->time; +#endif + *result = dt; } @@ -2441,7 +2442,10 @@ static int tm2timespan(struct tm * tm, double fsec, TimeSpan *span) { span->month = ((tm->tm_year * 12) + tm->tm_mon); - span->time = ((((((tm->tm_mday * 24) + tm->tm_hour) * 60) + tm->tm_min) * 60) + tm->tm_sec); + span->time = ((((((tm->tm_mday * 24.0) + + tm->tm_hour) * 60.0) + + tm->tm_min) * 60.0) + + tm->tm_sec); span->time = JROUND(span->time + fsec); return 0;