% This section was contributed by Drew Csillag <drew_csillag@geocities.com>.

\section{\module{calendar} ---
         Functions that emulate the \UNIX{} \program{cal} program.}
\declaremodule{standard}{calendar}

\modulesynopsis{Functions that emulate the \UNIX{} \program{cal}
program.}


This module allows you to output calendars like the \UNIX{}
\manpage{cal}{1} program.

\begin{funcdesc}{isleap}{year}
Returns \code{1} if \var{year} is a leap year.
\end{funcdesc}

\begin{funcdesc}{leapdays}{year1, year2}
Return the number of leap years in the range
[\var{year1}\ldots\var{year2}].
\end{funcdesc}

\begin{funcdesc}{weekday}{year, month, day}
Returns the day of the week (\code{0} is Monday) for \var{year}
(\code{1970}--\ldots), \var{month} (\code{1}--\code{12}), \var{day}
(\code{1}--\code{31}).
\end{funcdesc}

\begin{funcdesc}{monthrange}{year, month}
Returns weekday of first day of the month and number of days in month, 
for the specified \var{year} and \var{month}.
\end{funcdesc}

\begin{funcdesc}{monthcalendar}{year, month}
Returns a matrix representing a month's calendar.  Each row represents
a week; days outside of the month a represented by zeros.
\end{funcdesc}

\begin{funcdesc}{prmonth}{year, month\optional{, width\optional{, length}}}
Prints a month's calendar.  If \var{width} is provided, it specifies
the width of the columns that the numbers are centered in.  If
\var{length} is given, it specifies the number of lines that each
week will use.
\end{funcdesc}

\begin{funcdesc}{prcal}{year}
Prints the calendar for the year \var{year}.
\end{funcdesc}

\begin{funcdesc}{timegm}{tuple}
An unrelated but handy function that takes a time tuple such are
returned by the \function{gmtime()} function in the \module{time}
module, and returns the corresponding Unix timestamp value, assuming
an epoch of 1970, and the POSIX encoding.  In fact,
\function{gmtime()} and \function{timegm()} are each others inverse.
\end{funcdesc}
