DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T g

⟦3afc5c6cf⟧ TextFile

    Length: 4247 (0x1097)
    Types: TextFile
    Names: »getdate.3«

Derivation

└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
    └─ ⟦this⟧ »EUUGD11/euug-87hel/sec1/news/man/getdate.3« 

TextFile

.if n .ds La '
.if n .ds Ra '
.if t .ds La `
.if t .ds Ra '
.if n .ds Lq "
.if n .ds Rq "
.if t .ds Lq ``
.if t .ds Rq ''
.de Ch
\\$3\\*(Lq\\$1\\*(Rq\\$2
..
.TH GETDATE 3 "May 26, 1986"
.ds ]W  Version B 2.11
.SH NAME
getdate \- convert time and date from \s-2ASCII\s0
.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 (3C)
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 preceded 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,
.B "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 "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;
.B next week
is identical to
.BR "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.