summaryrefslogtreecommitdiff
path: root/static/unix-v10/man3/getdate.3
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-26 16:38:00 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-26 16:38:00 -0400
commit97d5c458cfa039d857301e1ca7d5af3beb37131d (patch)
treeb460cd850d0537eb71806ba30358840377b27688 /static/unix-v10/man3/getdate.3
parentb89dc2331a50c63f8b33272a5c4c61ab98abdaa3 (diff)
build: Better Build System
Diffstat (limited to 'static/unix-v10/man3/getdate.3')
-rw-r--r--static/unix-v10/man3/getdate.3169
1 files changed, 169 insertions, 0 deletions
diff --git a/static/unix-v10/man3/getdate.3 b/static/unix-v10/man3/getdate.3
new file mode 100644
index 00000000..37d9a625
--- /dev/null
+++ b/static/unix-v10/man3/getdate.3
@@ -0,0 +1,169 @@
+.TH GETDATE 3 unc
+.SH NAME
+getdate \- convert time and date from ASCII
+.SH SYNOPSIS
+.B #include <sys/types.h>
+.br
+.B #include <sys/timeb.h>
+.PP
+.B time_t getdate(buf, now)
+.br
+.B char *buf;
+.br
+struct timeb *now;
+.SH DESCRIPTION
+.I Getdate
+is a routine that converts most common time specifications to standard UNIX
+format. The first argument is the character string containing the
+time and date; the second is the assumed current time (used for relative
+specifications); if
+.B NULL
+is passed,
+.IR ftime (2)
+is used to obtain the current time and timezone.
+.PP
+The character string consists of 0 or more specifications of the following
+form:
+.TP .75i
+tod
+A
+.I tod
+is a time of day, which is of the form
+.IR hh : mm [: ss ]
+(or
+.IR hhmm )
+.RI [ meridian ]
+.RI [ zone ].
+If no meridian \-
+.B am
+or
+.B pm
+\- is specified, a 24-hour clock is used. A
+.I tod
+may be specified as just
+.I hh
+followed by a
+.IR meridian.
+.TP .75i
+date
+A
+.I date
+is a specific month and day, and possibly a year. Acceptable formats are
+.IR mm/dd [ /yy ]
+and
+.IR "monthname dd" "[, " yy ]
+If omitted, the year defaults to the
+current year; if a year is specified
+as a number less than 100, 1900 is added.
+If a number not followed by a day or relative time unit occurs, it will
+be interpreted as a year if a
+.IR tod ,
+.IR monthname ,
+and
+.I dd
+have already been specified; otherwise, it will be treated as a
+.IR tod .
+This rule allows the output from
+.IR date (1)
+or
+.IR ctime (3)
+to be passed as input to
+.IR getdate .
+.TP .75i
+day
+A
+.I day
+of the week may be specified; the current day will be used if appropriate.
+A
+.I day
+may be preceeded by a
+.IR number,
+indicating which instance of that day is desired; the default is
+.BR 1 .
+Negative
+.I numbers
+indicate times past. Some symbolic
+.I numbers
+are accepted:
+.BR last ,
+.BR next ,
+and the ordinals
+.B first
+through
+.B twelfth
+.RB ( second
+is ambiguous, and is not accepted as an ordinal number).
+The symbolic number
+.B next
+is equivalent to
+.BR 2 ;
+thus,
+.I "next monday"
+refers not to the immediately coming Monday, but to the one a week later.
+.TP .75i
+relative time
+Specifications relative to the current time are also accepted.
+The format is
+.RI [ number "] " unit ;
+acceptable units are
+.BR year ,
+.BR month ,
+.BR fortnight ,
+.BR week ,
+.BR day ,
+.BR hour ,
+.BR minute ,
+and
+.BR second .
+.PP
+The actual date is formed as follows: first, any absolute date and/or time
+is processed and converted. Using that time as the base, day-of-week
+specifications are added; last, relative specifications are used. If a
+date or day is specified, and no absolute or relative time is given, midnight
+is used.
+Finally, a correction is applied so that the correct hour of the day is
+produced after allowing for daylight savings time differences.
+.PP
+.I Getdate
+accepts most common abbreviations for days, months, etc.; in particular,
+it will recognize them with upper or lower case first letter, and will
+recognize three-letter abbreviations for any of them, with or without
+a trailing period. Units, such as
+.BR week s,
+may be specified in the singular or plural. Timezone and meridian
+values may be in upper or lower case, and with or without periods.
+.SH FILES
+/usr/lib/libu.a
+.SH "SEE ALSO"
+ctime(3), time(2)
+.SH AUTHOR
+Steven M. Bellovin (unc!smb)
+.br
+Dept. of Computer Science
+.br
+University of North Carolina at Chapel Hill
+.SH BUGS
+Because
+.IR yacc (1)
+is used to parse the date,
+.I getdate
+cannot be used a subroutine to any program that also needs
+.IR yacc .
+.br
+The grammar and scanner are rather primitive; certain desirable and
+unambiguous constructions are not accepted. Worse yet, the meaning of
+some legal phrases is not what is expected;
+.I next week
+is identical to
+.IR "2 weeks" .
+.br
+The daylight savings time correction is not perfect, and can get confused
+if handed times between midnight and 2:00 am on the days that the
+reckoning changes.
+.br
+Because
+.IR localtime (2)
+accepts an old-style time format without zone information, attempting
+to pass
+.I getdate
+a current time containing a different zone will probably fail.