*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
* 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)
{
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,
DATETIME_INVALID(dt);
}
+#ifdef ROUND_ALL
+ dt = JROUND(dt + span->time);
+#else
+ dt += span->time;
+#endif
+
*result = dt;
}
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;