


     GGGGEEEETTTTAAAABBBBSSSSDDDDAAAATTTTEEEE((((3333))))     XXXXEEEENNNNIIIIXXXX 3333....0000 ((((22227777 FFFFeeeebbbbrrrruuuuaaaarrrryyyy 1111999999991111))))	 GGGGEEEETTTTAAAABBBBSSSSDDDDAAAATTTTEEEE((((3333))))



     NNNNAAAAMMMMEEEE
	  getabsdate, prsabsdate, getindate, prsindate - date and time parsers

     SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
	  ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ttttyyyyppppeeeessss....hhhh>>>>
	  ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ttttiiiimmmmeeeebbbb....hhhh>>>>
	  ttttiiiimmmmeeee____tttt ggggeeeettttaaaabbbbssssddddaaaatttteeee((((ssssttttrrrr,,,, nnnnoooowwww))))
	  cccchhhhaaaarrrr ****ssssttttrrrr;;;;
	  ssssttttrrrruuuucccctttt ttttiiiimmmmeeeebbbb ****nnnnoooowwww;;;;
	  ttttiiiimmmmeeee____tttt ggggeeeettttiiiinnnnddddaaaatttteeee((((ssssttttrrrr,,,,	nnnnoooowwww))))
	  cccchhhhaaaarrrr ****ssssttttrrrr;;;;
	  ssssttttrrrruuuucccctttt ttttiiiimmmmeeeebbbb ****nnnnoooowwww;;;;
	  ####iiiinnnncccclllluuuuddddeeee <<<<ttttiiiimmmmeeee....hhhh>>>>
	  iiiinnnntttt pppprrrrssssaaaabbbbssssddddaaaatttteeee((((ssssttttrrrr,,,, nnnnoooowwww,,,, ttttmmmm,,,, ttttzzzzpppp))))
	  cccchhhhaaaarrrr ****ssssttttrrrr;;;;
	  ssssttttrrrruuuucccctttt ttttiiiimmmmeeeebbbb ****nnnnoooowwww;;;;
	  ssssttttrrrruuuucccctttt ttttmmmm ****ttttmmmm;;;;
	  iiiinnnntttt ****ttttzzzzpppp;;;;
	  iiiinnnntttt pppprrrrssssiiiinnnnddddaaaatttteeee((((ssssttttrrrr,,,, ttttmmmm,,,, ttttzzzzpppp))))
	  cccchhhhaaaarrrr ****ssssttttrrrr;;;;
	  ssssttttrrrruuuucccctttt ttttmmmm ****ttttmmmm;;;;
	  iiiinnnntttt ****ttttzzzzpppp;;;;

     DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
	  _G_e_t_a_b_s_d_a_t_e and _g_e_t_i_n_d_a_t_e parse dates (in _s_t_r)	and convert
	  them to _t_i_m_e__t _s (seconds since the epoch).  _P_r_s_a_b_s_d_a_t_e and
	  _p_r_s_i_n_d_a_t_e parse dates	and produce broken-out time structures
	  and time zones instead.  All are faster and smaller than
	  _g_e_t_d_a_t_e(3).  _G_e_t_i_n_d_a_t_e and _p_r_s_i_n_d_a_t_e are faster than
	  _g_e_t_a_b_s_d_a_t_e and _p_r_s_a_b_s_d_a_t_e, but _g_e_t_i_n_d_a_t_e and _p_r_s_i_n_d_a_t_e only
	  parse	Internet dates (as specified in	Internet RFCs 822 and
	  1123).

	  _G_e_t_a_b_s_d_a_t_e and _p_r_s_a_b_s_d_a_t_e parse fairly arbitrary absolute
	  dates: each date must	contain	a day-of-month,	English	month
	  name,	and two- or four-digit year, and may optionally
	  contain a colon-separated time (with optional	seconds),
	  weekday name,	and signed numeric or alphabetic time zone.
	  The day-of-month must	precede	the year, but no other
	  ordering is assumed.	Four-digit years are encouraged.
	  Delimiters are space,	tab, newline, slash, and comma;	dashes
	  are only delimiters if the date cannot otherwise be parsed.
	  All-numeric dates are	ambiguous and are rejected.  Unknown
	  words	are assumed to be bogus	timezones and are ignored.
	  American military time zones are not supported.  Alphabetic
	  time zones other than	GMT are	deprecated.

	  _G_e_t_i_n_d_a_t_e and	_p_r_s_i_n_d_a_t_e parse	RFC 822	dates, as amended by
	  RFC 1123 (GMT	is strongly encouraged).  These	routines are
	  intended to be used to parse dates suspected to be machine-
	  generated or otherwise likely	to be in the right format.



     Page 1					      (printed 8/2/94)






     GGGGEEEETTTTAAAABBBBSSSSDDDDAAAATTTTEEEE((((3333))))     XXXXEEEENNNNIIIIXXXX 3333....0000 ((((22227777 FFFFeeeebbbbrrrruuuuaaaarrrryyyy 1111999999991111))))	 GGGGEEEETTTTAAAABBBBSSSSDDDDAAAATTTTEEEE((((3333))))



	  Due to their extreme speed, they may be used as a pre-pass
	  before calling _g_e_t_a_b_s_d_a_t_e or _p_r_s_a_b_s_d_a_t_e in any case.

     SSSSEEEEEEEE AAAALLLLSSSSOOOO
	  _c_t_i_m_e(3), _m_k_t_i_m_e(3)
	  Internet RFCs	822 and	1123

     DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
	  All return a negative	value on error.

     HHHHIIIISSSSTTTTOOOORRRRYYYY
	  Written at the University of Toronto by Geoff	Collyer	and
	  Mark Moraes (who regret ever getting involved	with date
	  parsing).  Bits of code borrowed with	permission from
	  _g_e_t_d_a_t_e(3), Rayan Zachariassen and Rich Wales.  Corrections
	  to the time zone table from Paul Eggert.

     BBBBUUUUGGGGSSSS
	  _G_e_t_a_b_s_d_a_t_e and _p_r_s_a_b_s_d_a_t_e modify their _s_t_r arguments.

	  The treatment	of dashes in _g_e_t_a_b_s_d_a_t_e	and _p_r_s_a_b_s_d_a_t_e is a
	  hack to permit parsing of dates in DEC format	(31-Jan-91),
	  which	is itself a botch, so we're even.

	  Alphabetic time zones	are wildly ambiguous; don't use	them.

	  The Gregorian	calendar is a kludge only an innumerate	could
	  love.	 When will someone impose a metric calendar and	free
	  us from the vanity and incompetence of the Roman emperors,
	  notably the random lengths of	months?

	  Daylight savings time	is a patchwork mess only a politician
	  could	love.

	  Weekday names	are too	long and redundant.  Did the Norse
	  have weak memories?

	  Leap years are a pain; the earth should be stabilised.

















     Page 2					      (printed 8/2/94)



