SYNOPSIS
#include <sys/types.h>
typedef struct _TIMEINFO {
time_t time;
long usec;
long tzone;
} TIMEINFO;
time_t
parsedate(text, now)
char *text;
TIMEINFO *now;
DESCRIPTION
Parsedate converts many common time specifications into the number of
seconds since the epoch -- i.e., a time_t; see time(2).
Parsedate returns the time, or -1 on error. Text is a character string
containing the time and date. Now is a pointer to the time that should
be used for calculating relative dates. If now is NULL, then GetTime-
Info in libinn(3) is used to obtain the current time and timezone.
The character string consists of zero or more specifications of the
following form:
time A time of day, which is of the form hh[:mm[:ss]] [meridian]
[zone] or hhmm [meridian] [zone]. If no meridian is specified,
hh is interpreted on a 24-hour clock.
date A specific month and day with optional year. The acceptable
formats are mm/dd[/yy], yyyy/mm/dd, monthname dd[, yy], dd mon-
thname [yy], and day, dd monthname yy. The default year is the
current year. If the year is less then 100, then 1900 is added
to it; if it is less then 21, then 2000 is added to it.
relative time
A specification relative to the current time. The format is
number unit; acceptable units are year, month, week, day, hour,
minute (or min), and second (or sec). The unit can be specified
as a singular or plural, as in 3 weeks.
The actual date is calculated according to the following steps. First,
any absolute date and/or time is processed and converted. Using that
time as the base, day-of-week specifications are added. Next, relative
specifications are used. If a date or day is specified, and no abso-
lute or relative time is given, midnight is used. Finally, a correc-
tion is applied so that the correct hour of the day is produced after
allowing for daylight savings time differences.
Parsedate ignores case when parsing all words; unknown words are taken
to be unknown timezones, which are treated as GMT. The names of the
Originally written by Steven M. Bellovin <smb@research.att.com> while
at the University of North Carolina at Chapel Hill and distributed
under the name getdate.
A major overhaul was done by Rich $alz <rsalz@bbn.com> and Jim Berets
<jberets@bbn.com> in August, 1990.
It was further revised (primarily to remove obsolete constructs and
timezone names) a year later by Rich (now <rsalz@osf.org>) for Inter-
NetNews, and the name was changed. This is revision 6312, dated
2003-05-04.
SEE ALSO
date(1), ctime(3), libinn(3), time(2).
PARSEDATE(3)
Man(1) output converted with
man2html