plan9port/man/man3/ctime.3
Russ Cox 977b25a76a tmac: introduce real manual reference macro instead of overloading IR
The overloading of IR emits magic \X'...' sequences that turn into HTML manual links.
But not all such IR invocations should be manual links;
those had to be written to avoid the IR macro before.
Worse, the \X'...' ending the IR causes troff to emit only a single space after a period.

Defining a new IM macro for manual references fixes both problems.

Fixes #441.
2020-08-13 23:43:43 -04:00

115 lines
2.1 KiB
Groff

.TH CTIME 3
.SH NAME
ctime, localtime, gmtime, asctime, tm2sec \- convert date and time
.SH SYNOPSIS
.B #include <u.h>
.br
.B #include <libc.h>
.PP
.ta \w'\fLchar* 'u
.B
char* ctime(long clock)
.PP
.B
Tm* localtime(long clock)
.PP
.B
Tm* gmtime(long clock)
.PP
.B
char* asctime(Tm *tm)
.PP
.B
long tm2sec(Tm *tm)
.SH DESCRIPTION
.I Ctime
converts a time
.I clock
such as returned by
.IM time (3)
into
.SM ASCII
(sic)
and returns a pointer to a
30-byte string
in the following form.
All the fields have constant width.
.PP
.B
Wed Aug 5 01:07:47 EST 1973\en\e0
.PP
.I Localtime
and
.I gmtime
return pointers to structures containing
the broken-down time.
.I Localtime
corrects for the time zone and possible daylight savings time;
.I gmtime
converts directly to GMT.
.I Asctime
converts a broken-down time to
.SM ASCII
and returns a pointer
to a 30-byte string.
.IP
.EX
.ta 6n +\w'char 'u +\w'zone[4]; 'u
typedef
struct {
int sec; /* seconds (range 0..59) */
int min; /* minutes (0..59) */
int hour; /* hours (0..23) */
int mday; /* day of the month (1..31) */
int mon; /* month of the year (0..11) */
int year; /* year A.D. \- 1900 */
int wday; /* day of week (0..6, Sunday = 0) */
int yday; /* day of year (0..365) */
char zone[4]; /* time zone name */
int tzoff; /* time zone delta from GMT */
} Tm;
.EE
.PP
.I Tm2sec
converts a broken-down time to
seconds since the start of the epoch.
It ignores
.BR wday ,
and assumes the local time zone
if
.B zone
is not
.BR GMT .
.SH SOURCE
.B \*9/src/lib9/ctime.c
.br
.B \*9/src/lib9/tm2sec.c
.SH "SEE ALSO"
.IM date (1) ,
.IM time (3)
.SH BUGS
The return values point to static data
whose content is overwritten by each call.
.PP
Daylight Savings Time is ``normal'' in the Southern hemisphere.
.PP
These routines are not equipped to handle non-\c
.SM ASCII
text, and are provincial anyway.
.PP
To avoid name conflicts with the underlying system,
.IR ctime ,
.IR localtime ,
.IR gmtime ,
.IR asctime ,
and
.I tm2sec
are preprocessor macros defined as
.IR p9ctime ,
.IR p9localtime ,
.IR p9gmtime ,
.IR p9asctime ,
and
.IR p9tm2sec ;
see
.IM intro (3) .