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