Annotation of researchv10dc/man/manb/getdate.3, revision 1.1.1.1

1.1       root        1: .TH GETDATE 3 unc
                      2: .SH NAME
                      3: getdate \- convert time and date from ASCII
                      4: .SH SYNOPSIS
                      5: .B #include <sys/types.h>
                      6: .br
                      7: .B #include <sys/timeb.h>
                      8: .PP
                      9: .B time_t getdate(buf, now)
                     10: .br
                     11: .B char *buf;
                     12: .br
                     13: struct timeb *now;
                     14: .SH DESCRIPTION
                     15: .I Getdate
                     16: converts common time specifications to standard UNIX
                     17: format.
                     18: .I Buf
                     19: is a character string containing the
                     20: time and date.
                     21: .I Now
                     22: is the assumed current time (used for relative
                     23: specifications); if the pointer is null (0)
                     24: .I ftime
                     25: (see
                     26: .IR time (2))
                     27: is used to obtain the current time and timezone.
                     28: .PP
                     29: The character string consists of 0 or more specifications of the following
                     30: form:
                     31: .TP
                     32: tod
                     33: A
                     34: .I tod
                     35: is a time of day, in the form
                     36: .IR hh : mm [: ss ]
                     37: (or
                     38: .IR hhmm )
                     39: .RI [ meridian ]
                     40: .RI [ zone ].
                     41: If no meridian \-
                     42: .B am
                     43: or
                     44: .B pm
                     45: \- is specified, a 24-hour clock is used.
                     46: A
                     47: .I tod
                     48: may be specified as just
                     49: .I hh
                     50: followed by a
                     51: .IR meridian.
                     52: .TP
                     53: date
                     54: A
                     55: .I date
                     56: is a specific month and day, and possibly a year.  Acceptable formats are
                     57: .IR mm/dd [ /yy ]
                     58: and
                     59: .IR "monthname dd" "[, " yy ]
                     60: If omitted, the year defaults to the
                     61: current year; if a year is specified
                     62: as a number less than 100, 1900 is added.
                     63: If a number not followed by a day or relative time unit occurs, it will
                     64: be interpreted as a year if a
                     65: .IR tod ,
                     66: .IR monthname ,
                     67: and
                     68: .I dd
                     69: have already been specified; otherwise, it will be treated as a
                     70: .IR tod .
                     71: This rule allows the output from
                     72: .IR date (1)
                     73: or
                     74: .IR ctime (3)
                     75: to be passed as input to
                     76: .IR getdate .
                     77: .TP .75i
                     78: day
                     79: A
                     80: .I day
                     81: of the week may be specified; the current day will be used if appropriate.
                     82: A
                     83: .I day
                     84: may be preceeded by a
                     85: .IR number,
                     86: indicating which instance of that day is desired; the default is
                     87: .BR 1 .
                     88: Negative
                     89: .I numbers
                     90: indicate times past.  Some symbolic
                     91: .I numbers
                     92: are accepted:
                     93: .BR last ,
                     94: .BR next ,
                     95: and the ordinals
                     96: .B first
                     97: through
                     98: .B twelfth
                     99: .RB ( second
                    100: is ambiguous, and is not accepted as an ordinal number).
                    101: The symbolic number
                    102: .B next
                    103: is equivalent to
                    104: .BR 2 ;
                    105: thus,
                    106: .I "next monday"
                    107: refers not to the immediately coming Monday, but to the one a week later.
                    108: .TP .75i
                    109: relative time
                    110: Specifications relative to the current time are also accepted.  
                    111: The format is
                    112: .RI [ number "] " unit ;
                    113: acceptable units are
                    114: .BR year ,
                    115: .BR month ,
                    116: .BR fortnight ,
                    117: .BR week ,
                    118: .BR day ,
                    119: .BR hour ,
                    120: .BR minute ,
                    121: and
                    122: .BR second .
                    123: .PP
                    124: The actual date is formed as follows:  first, any absolute date and/or time
                    125: is processed and converted.  Using that time as the base, day-of-week
                    126: specifications are added; last, relative specifications are used.  If a
                    127: date or day is specified, and no absolute or relative time is given, midnight
                    128: is used.
                    129: Finally, a correction is applied so that the correct hour of the day is
                    130: produced after allowing for daylight savings time differences.
                    131: .PP
                    132: .I Getdate
                    133: accepts most common abbreviations for days, months, etc.; in particular,
                    134: it will recognize them with upper or lower case first letter, and will
                    135: recognize three-letter abbreviations for any of them, with or without
                    136: a trailing period.  Units, such as
                    137: .BR week s,
                    138: may be specified in the singular or plural.  Timezone and meridian
                    139: values may be in upper or lower case, and with or without periods.
                    140: .SH FILES
                    141: /usr/lib/libu.a
                    142: .SH "SEE ALSO"
                    143: ctime(3), time(2)
                    144: .SH AUTHOR
                    145: Steven M. Bellovin (unc!smb)
                    146: .br
                    147: Dept. of Computer Science
                    148: .br
                    149: University of North Carolina at Chapel Hill
                    150: .SH BUGS
                    151: Because
                    152: .IR yacc (1)
                    153: is used to parse the date,
                    154: .I getdate
                    155: cannot be used a subroutine to any program that also needs
                    156: .IR yacc .
                    157: .br
                    158: The grammar and scanner are rather primitive; certain desirable and
                    159: unambiguous constructions are not accepted.  Worse yet, the meaning of
                    160: some legal phrases is not what is expected;
                    161: .I next week
                    162: is identical to
                    163: .IR "2 weeks" .
                    164: .br
                    165: The daylight savings time correction is not perfect, and can get confused
                    166: if handed times between midnight and 2:00 am on the days that the
                    167: reckoning changes.
                    168: .br
                    169: Because
                    170: .IR localtime (2)
                    171: accepts an old-style time format without zone information, attempting
                    172: to pass
                    173: .I getdate
                    174: a current time containing a different zone will probably fail.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.