|
7 | 7 | *
|
8 | 8 | *
|
9 | 9 | * IDENTIFICATION
|
10 |
| - * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/dt.c,v 1.72.2.1 1999/08/02 05:24:51 scrappy Exp $ |
| 10 | + * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/dt.c,v 1.72.2.2 2000/01/04 07:56:23 thomas Exp $ |
11 | 11 | *
|
12 | 12 | *-------------------------------------------------------------------------
|
13 | 13 | */
|
@@ -811,6 +811,7 @@ datetime_mi(DateTime *datetime1, DateTime *datetime2)
|
811 | 811 | * To add a month, increment the month, and use the same day of month.
|
812 | 812 | * Then, if the next month has fewer days, set the day of month
|
813 | 813 | * to the last day of month.
|
| 814 | + * Lastly, add in the "quantitative time". |
814 | 815 | */
|
815 | 816 | DateTime *
|
816 | 817 | datetime_pl_span(DateTime *datetime, TimeSpan *span)
|
@@ -843,12 +844,6 @@ datetime_pl_span(DateTime *datetime, TimeSpan *span)
|
843 | 844 | {
|
844 | 845 | dt = (DATETIME_IS_RELATIVE(*datetime) ? SetDateTime(*datetime) : *datetime);
|
845 | 846 |
|
846 |
| -#ifdef ROUND_ALL |
847 |
| - dt = JROUND(dt + span->time); |
848 |
| -#else |
849 |
| - dt += span->time; |
850 |
| -#endif |
851 |
| - |
852 | 847 | if (span->month != 0)
|
853 | 848 | {
|
854 | 849 | struct tm tt,
|
@@ -889,6 +884,12 @@ datetime_pl_span(DateTime *datetime, TimeSpan *span)
|
889 | 884 | DATETIME_INVALID(dt);
|
890 | 885 | }
|
891 | 886 |
|
| 887 | +#ifdef ROUND_ALL |
| 888 | + dt = JROUND(dt + span->time); |
| 889 | +#else |
| 890 | + dt += span->time; |
| 891 | +#endif |
| 892 | + |
892 | 893 | *result = dt;
|
893 | 894 | }
|
894 | 895 |
|
@@ -2569,7 +2570,10 @@ static int
|
2569 | 2570 | tm2timespan(struct tm * tm, double fsec, TimeSpan *span)
|
2570 | 2571 | {
|
2571 | 2572 | span->month = ((tm->tm_year * 12) + tm->tm_mon);
|
2572 |
| - span->time = ((((((tm->tm_mday * 24) + tm->tm_hour) * 60) + tm->tm_min) * 60) + tm->tm_sec); |
| 2573 | + span->time = ((((((tm->tm_mday * 24.0) |
| 2574 | + + tm->tm_hour) * 60.0) |
| 2575 | + + tm->tm_min) * 60.0) |
| 2576 | + + tm->tm_sec); |
2573 | 2577 | span->time = JROUND(span->time + fsec);
|
2574 | 2578 |
|
2575 | 2579 | #ifdef DATEDEBUG
|
|
0 commit comments