*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/dt.c,v 1.41 1997/09/20 16:20:29 thomas Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/dt.c,v 1.42 1997/10/17 05:36:01 thomas Exp $
*
*-------------------------------------------------------------------------
*/
}
return (result);
-} /* datetime_in() */
+} /* datetime_in() */
/* datetime_out()
* Convert a datetime to external form.
strcpy(result, buf);
return (result);
-} /* datetime_out() */
+} /* datetime_out() */
/* timespan_in()
}
return (span);
-} /* timespan_in() */
+} /* timespan_in() */
/* timespan_out()
* Convert a time span to external form.
strcpy(result, buf);
return (result);
-} /* timespan_out() */
+} /* timespan_out() */
/*****************************************************************************
return FALSE;
return (!DATETIME_NOT_FINITE(*datetime));
-} /* datetime_finite() */
+} /* datetime_finite() */
#ifdef NOT_USED
return FALSE;
return (!TIMESPAN_NOT_FINITE(*timespan));
-} /* timespan_finite() */
+} /* timespan_finite() */
#endif
#endif
return;
-} /* GetEpochTime() */
+} /* GetEpochTime() */
DateTime
SetDateTime(DateTime dt)
}
return (dt);
-} /* SetDateTime() */
+} /* SetDateTime() */
/* datetime_relop - is datetime1 relop datetime2
*/
dt2 = SetDateTime(dt2);
return (dt1 == dt2);
-} /* datetime_eq() */
+} /* datetime_eq() */
bool
datetime_ne(DateTime *datetime1, DateTime *datetime2)
dt2 = SetDateTime(dt2);
return (dt1 != dt2);
-} /* datetime_ne() */
+} /* datetime_ne() */
bool
datetime_lt(DateTime *datetime1, DateTime *datetime2)
dt2 = SetDateTime(dt2);
return (dt1 < dt2);
-} /* datetime_lt() */
+} /* datetime_lt() */
bool
datetime_gt(DateTime *datetime1, DateTime *datetime2)
printf("datetime_gt- %f %s greater than %f\n", dt1, ((dt1 > dt2) ? "is" : "is not"), dt2);
#endif
return (dt1 > dt2);
-} /* datetime_gt() */
+} /* datetime_gt() */
bool
datetime_le(DateTime *datetime1, DateTime *datetime2)
dt2 = SetDateTime(dt2);
return (dt1 <= dt2);
-} /* datetime_le() */
+} /* datetime_le() */
bool
datetime_ge(DateTime *datetime1, DateTime *datetime2)
dt2 = SetDateTime(dt2);
return (dt1 >= dt2);
-} /* datetime_ge() */
+} /* datetime_ge() */
/* datetime_cmp - 3-state comparison for datetime
}
return (((dt1 < dt2) ? -1 : ((dt1 > dt2) ? 1 : 0)));
-} /* datetime_cmp() */
+} /* datetime_cmp() */
/* timespan_relop - is timespan1 relop timespan2
return ((timespan1->time == timespan2->time)
&& (timespan1->month == timespan2->month));
-} /* timespan_eq() */
+} /* timespan_eq() */
bool
timespan_ne(TimeSpan *timespan1, TimeSpan *timespan2)
return ((timespan1->time != timespan2->time)
|| (timespan1->month != timespan2->month));
-} /* timespan_ne() */
+} /* timespan_ne() */
bool
timespan_lt(TimeSpan *timespan1, TimeSpan *timespan2)
span2 += (timespan2->month * (30.0 * 86400));
return (span1 < span2);
-} /* timespan_lt() */
+} /* timespan_lt() */
bool
timespan_gt(TimeSpan *timespan1, TimeSpan *timespan2)
span2 += (timespan2->month * (30.0 * 86400));
return (span1 > span2);
-} /* timespan_gt() */
+} /* timespan_gt() */
bool
timespan_le(TimeSpan *timespan1, TimeSpan *timespan2)
span2 += (timespan2->month * (30.0 * 86400));
return (span1 <= span2);
-} /* timespan_le() */
+} /* timespan_le() */
bool
timespan_ge(TimeSpan *timespan1, TimeSpan *timespan2)
span2 += (timespan2->month * (30.0 * 86400));
return (span1 >= span2);
-} /* timespan_ge() */
+} /* timespan_ge() */
/* timespan_cmp - 3-state comparison for timespan
span2 += (timespan2->month * (30.0 * 86400));
return ((span1 < span2) ? -1 : (span1 > span2) ? 1 : 0);
-} /* timespan_cmp() */
+} /* timespan_cmp() */
/*----------------------------------------------------------
}
return (result);
-} /* datetime_smaller() */
+} /* datetime_smaller() */
DateTime *
datetime_larger(DateTime *datetime1, DateTime *datetime2)
}
return (result);
-} /* datetime_larger() */
+} /* datetime_larger() */
TimeSpan *
result->month = 0;
return (result);
-} /* datetime_mi() */
+} /* datetime_mi() */
/* datetime_pl_span()
}
return (result);
-} /* datetime_pl_span() */
+} /* datetime_pl_span() */
DateTime *
datetime_mi_span(DateTime *datetime, TimeSpan *span)
result = datetime_pl_span(datetime, &tspan);
return (result);
-} /* datetime_mi_span() */
+} /* datetime_mi_span() */
TimeSpan *
result->month = -(timespan->month);
return (result);
-} /* timespan_um() */
+} /* timespan_um() */
TimeSpan *
}
return (result);
-} /* timespan_smaller() */
+} /* timespan_smaller() */
TimeSpan *
timespan_larger(TimeSpan *timespan1, TimeSpan *timespan2)
}
return (result);
-} /* timespan_larger() */
+} /* timespan_larger() */
TimeSpan *
result->time = JROUND(span1->time + span2->time);
return (result);
-} /* timespan_pl() */
+} /* timespan_pl() */
TimeSpan *
timespan_mi(TimeSpan *span1, TimeSpan *span2)
result->time = JROUND(span1->time - span2->time);
return (result);
-} /* timespan_mi() */
+} /* timespan_mi() */
TimeSpan *
timespan_div(TimeSpan *span1, float8 *arg2)
result->time = JROUND(span1->time / *arg2);
return (result);
-} /* timespan_div() */
+} /* timespan_div() */
/* datetime_age()
* Calculate time difference while retaining year/month fields.
}
return (result);
-} /* datetime_age() */
+} /* datetime_age() */
/*----------------------------------------------------------
PFREE(str);
return (result);
-} /* datetime_text() */
+} /* datetime_text() */
/* text_datetime()
result = datetime_in(dstr);
return (result);
-} /* text_datetime() */
+} /* text_datetime() */
/* timespan_text()
PFREE(str);
return (result);
-} /* timespan_text() */
+} /* timespan_text() */
/* text_timespan()
result = timespan_in(dstr);
return (result);
-} /* text_timespan() */
+} /* text_timespan() */
#endif
}
return (result);
-} /* datetime_trunc() */
+} /* datetime_trunc() */
/* timespan_trunc()
* Extract specified field from timespan.
}
return (result);
-} /* timespan_trunc() */
+} /* timespan_trunc() */
/* datetime_part()
}
return (result);
-} /* datetime_part() */
+} /* datetime_part() */
/* timespan_part()
}
return (result);
-} /* timespan_part() */
+} /* timespan_part() */
/* datetime_zone()
}
return (result);
-} /* datetime_zone() */
+} /* datetime_zone() */
/*****************************************************************************
return ((1461 * (y + 4800 + m12)) / 4 + (367 * (m - 2 - 12 * (m12))) / 12
- (3 * ((y + 4900 + m12) / 100)) / 4 + d - 32075);
-} /* date2j() */
+} /* date2j() */
void
j2date(int jd, int *year, int *month, int *day)
*month = m;
*day = d;
return;
-} /* j2date() */
+} /* j2date() */
static int
j2day(int date)
day = (date + 1) % 7;
return (day);
-} /* j2day() */
+} /* j2day() */
/* datetime2tm()
#endif
return 0;
-} /* datetime2tm() */
+} /* datetime2tm() */
/* tm2datetime()
*result = dt2local(*result, -(*tzp));
return 0;
-} /* tm2datetime() */
+} /* tm2datetime() */
/* timespan2tm()
#endif
return 0;
-} /* timespan2tm() */
+} /* timespan2tm() */
static int
tm2timespan(struct tm * tm, double fsec, TimeSpan *span)
#endif
return 0;
-} /* tm2timespan() */
+} /* tm2timespan() */
static DateTime
dt -= tz;
dt = JROUND(dt);
return (dt);
-} /* dt2local() */
+} /* dt2local() */
double
time2t(const int hour, const int min, const double sec)
{
return ((((hour * 60) + min) * 60) + sec);
-} /* time2t() */
+} /* time2t() */
static void
dt2time(DateTime jd, int *hour, int *min, double *sec)
*sec = JROUND(time);
return;
-} /* dt2time() */
+} /* dt2time() */
/*
*numfields = nf;
return 0;
-} /* ParseDateTime() */
+} /* ParseDateTime() */
/* DecodeDateTime()
if ((mer != HR24) && (tm->tm_hour > 12))
return -1;
- if (mer == PM)
+ if ((mer == AM) && (tm->tm_hour == 12))
+ tm->tm_hour = 0;
+ else if ((mer == PM) && (tm->tm_hour != 12))
tm->tm_hour += 12;
#ifdef DATEDEBUG
}
return 0;
-} /* DecodeDateTime() */
+} /* DecodeDateTime() */
/* DecodeTimeOnly()
if ((mer != HR24) && (tm->tm_hour > 12))
return -1;
- if (mer == PM)
+ if ((mer == AM) && (tm->tm_hour == 12))
+ tm->tm_hour = 0;
+ else if ((mer == PM) && (tm->tm_hour != 12))
tm->tm_hour += 12;
if ((fmask & DTK_TIME_M) != DTK_TIME_M)
return -1;
return 0;
-} /* DecodeTimeOnly() */
+} /* DecodeTimeOnly() */
/* DecodeDate()
}
return 0;
-} /* DecodeDate() */
+} /* DecodeDate() */
/* DecodeTime()
return -1;
return 0;
-} /* DecodeTime() */
+} /* DecodeTime() */
/* DecodeNumber()
}
return 0;
-} /* DecodeNumber() */
+} /* DecodeNumber() */
/* DecodeNumberField()
}
return 0;
-} /* DecodeNumberField() */
+} /* DecodeNumberField() */
/* DecodeTimezone()
*tzp = -tz;
return (*cp != '\0');
-} /* DecodeTimezone() */
+} /* DecodeTimezone() */
/* DecodeSpecial()
}
return (type);
-} /* DecodeSpecial() */
+} /* DecodeSpecial() */
/* DecodeDateDelta()
}
/*
- * read through remaining list backwards to pick up units before
- * values
+ * read through remaining list backwards to pick up units before values
*/
for (i = nf - 1; i >= ii; i--)
{
/* ensure that at least one time field has been found */
return ((fmask != 0) ? 0 : -1);
-} /* DecodeDateDelta() */
+} /* DecodeDateDelta() */
/* DecodeUnits()
}
return (type);
-} /* DecodeUnits() */
+} /* DecodeUnits() */
/* datebsearch()
}
return (FALSE);
-} /* EncodeSpecialDateTime() */
+} /* EncodeSpecialDateTime() */
/* EncodeDateOnly()
#endif
return (TRUE);
-} /* EncodeDateOnly() */
+} /* EncodeDateOnly() */
/* EncodeTimeOnly()
#endif
return (TRUE);
-} /* EncodeTimeOnly() */
+} /* EncodeTimeOnly() */
/* EncodeDateTime()
#endif
return (TRUE);
-} /* EncodeDateTime() */
+} /* EncodeDateTime() */
/* EncodeTimeSpan()
#endif
return 0;
-} /* EncodeTimeSpan() */
+} /* EncodeTimeSpan() */
#if defined(linux) && defined(PPC)