summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/datetime/datetime.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-12-08 00:12:18 +0000
committerKarl Berry <karl@freefriends.org>2006-12-08 00:12:18 +0000
commit7f549680dc21a5a0b6c80ce7b1252b232d8535ff (patch)
tree8f8fd8be391bd9e650d01094a09fc16e1602ab53 /Master/texmf-dist/source/latex/datetime/datetime.dtx
parent71ba36e9c3d9def1d38c13384caf3b3737c1b188 (diff)
datetime update (7dec06)
git-svn-id: svn://tug.org/texlive/trunk@2623 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/datetime/datetime.dtx')
-rw-r--r--Master/texmf-dist/source/latex/datetime/datetime.dtx2675
1 files changed, 1763 insertions, 912 deletions
diff --git a/Master/texmf-dist/source/latex/datetime/datetime.dtx b/Master/texmf-dist/source/latex/datetime/datetime.dtx
index 84aacd4bfbd..f1000ee8c4d 100644
--- a/Master/texmf-dist/source/latex/datetime/datetime.dtx
+++ b/Master/texmf-dist/source/latex/datetime/datetime.dtx
@@ -1,17 +1,17 @@
%\iffalse
-% datetime.dtx generated using makedtx version 0.9b (c) Nicola Talbot
+% datetime.dtx generated using makedtx version 0.91b (c) Nicola Talbot
% Command line args:
% -macrocode ".*\.perl"
% -setambles ".*\.perl=>\nopreamble\nopostamble"
-% -src "(.+)\.(def)=>\1.\2"
% -src "(.+)\.(sty)=>\1.\2"
+% -src "(.+)\.(def)=>\1.\2"
% -src "(.+)\.(perl)=>\1.\2"
% -src "(dt-sampl\.tex)=>\1"
% -doc "manual.tex"
% -author "Nicola Talbot"
% -dir "source"
% datetime
-% Created on 2005/10/1 15:23
+% Created on 2006/12/6 11:03
%\fi
%\iffalse
%<*package>
@@ -34,7 +34,7 @@
%\fi
% \iffalse
% Doc-Source file to use with LaTeX2e
-% Copyright (C) 2005 Nicola Talbot, all rights reserved.
+% Copyright (C) 2006 Nicola Talbot, all rights reserved.
% \fi
% \iffalse
%<*driver>
@@ -47,7 +47,7 @@
pdftitle={datetime.sty: A Date and Time Package},
pdfkeywords={date,time,LaTeX}]{hyperref}
-
+\CheckSum{4458}
\newcommand{\stynamefmt}[1]{\textsf{#1}}
\begin{document}
@@ -58,14 +58,14 @@
%
%\RecordChanges
%\OnlyDescription
-%\def\docdate{25 May 2005}
+%\def\docdate{5 Dec 2006}
%
%\changes{v2.46}{30 Sep 2005}{'today defined using 'DeclareRobustCommand}
%\changes{v2.41}{22 Oct 2004}{'today defined using 'providecommand instead of 'renewcommand}
%
-% \title{datetime.sty v2.46: Formatting Current Date and
+% \title{datetime.sty v2.49: Formatting Current Date and
%Time}
-% \author{N.L.C. Talbot}
+% \author{Nicola L.C. Talbot}
% \date{\docdate}
% \maketitle
% \tableofcontents
@@ -252,6 +252,7 @@
%
% \section{Formating Dates}
% \DescribeMacro{\pdfdate}
+%\changes{v2.48}{4 May 2004}{Fixed bug in 'pdfdate}
%\changes{v2.32}{4 May 2004}{Fixed bug in 'pdfdate}
%\changes{v2.31}{1 May 2004}{'pdfdate added}
% The command \verb"\pdfdate"\footnote{thanks to Ulrich Dirr for
@@ -635,6 +636,11 @@
%
%\end{itemize}
%
+%\section{Troubleshooting}
+%
+%There is a \stynamefmt{datetime} FAQ available at:
+%\url{http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/faq/}
+%
% \section{Contact Details}
% Dr Nicola Talbot\\
% School of Computing Sciences\\
@@ -646,18 +652,917 @@
%
%\StopEventually{}
%\section{The Code}
+%\iffalse
+% \begin{macrocode}
+%<*datetime.sty>
+% \end{macrocode}
+%\fi
+%\subsection{datetime.sty}
+% This section documents the code for \texttt{datetime.sty}
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{datetime}[2006/12/05 v2.49 Date Time Package]
+% \end{macrocode}
+%\texttt{fmtcount.sty} needs to be loaded here as it defines the command |\fmtord| which may be redefined later:
+% \begin{macrocode}
+\RequirePackage{fmtcount}
+% \end{macrocode}
+% Define a new conditional |\if@dt@nodate|. If it is true,
+% |\today| will not be redefined, nor will
+% |\monthname|, |\shortmonthname|, |\dayofweek| and |\shortdayofweek| be defined.
+% Set it to false.
+% \begin{macrocode}
+\newif\if@dt@nodate
+\@dt@nodatefalse
+% \end{macrocode}
+% Define the character used to separate the numbers in the formats defined by
+% |\ddmmyyyy| etc
+% \begin{macrocode}
+\newcommand{\dateseparator}{/}
+% \end{macrocode}
+% Define switch to determine whether to enable multilingual support.%
+%\changes{v2.49}{5 Dec 2006}{check to see if babel package is
+%loaded instead of testing 'languagename (following suggestions on
+% comp.text.tex)}
+% Note that babel must be loaded \emph{before} datetime, otherwise
+% it will change the definitions of |\date|\meta{lang}.
+% \begin{macrocode}
+\newif\if@dt@multilingual
+\@ifpackageloaded{babel}{%
+\@dt@multilingualtrue}{\@dt@multilingualfalse}
+% \end{macrocode}
+% Define |\ordinaldate|. This is needed because some
+% languages only use an ordinal for the first day of
+% the month (such as french). This isn't really needed
+% here, but the LaTeX2HTML style file needs this command.
+% English version:
+% \begin{macrocode}
+\newcommand{\ordinaldateenglish}[1]{\ordinalnum{#1}}
+% \end{macrocode}
+% Welsh version:
+% \begin{macrocode}
+\newcommand{\ordinaldatewelsh}[1]{%
+#1\ifnum#1=1\/\textsuperscript{a\~n}\fi}
+% \end{macrocode}
+% Breton version:
+% \begin{macrocode}
+\newcommand{\ordinaldatebreton}[1]{%
+#1\ifnum#1=1\/\textsuperscript{a\~n}\fi}
+% \end{macrocode}
+% French:
+% \begin{macrocode}
+\newcommand{\ordinaldatefrench}[1]{%
+#1\ifnum#1=1\ier\fi}
+% \end{macrocode}
+% Let \verb|\ordinaldate| be language dependent. If
+% |\ordinaldate|\meta{language} is not defined, then just display
+% the number.
+% \begin{macrocode}
+\newcommand{\ordinaldate}[1]{%
+\if@dt@multilingual
+\@ifundefined{ordinaldate\languagename}{#1}{%
+\csname ordinaldate\languagename\endcsname{#1}}
+\else
+\ordinalnum{#1}%
+\fi}
+% \end{macrocode}
+% In case \verb|\ier| hasn't been defined:%
+%\changes{v2.47}{27 Oct 2005}{'ier defined if it doesn't
+% already exist}
+% \begin{macrocode}
+\providecommand{\ier}{\textsuperscript{er}}
+% \end{macrocode}
+% Now define the declarations that redefine |\formatdate| as they
+% are used by the package options. Need a conditional to determine
+% whether or not to show the day of week name.
+% \begin{macrocode}
+\newif\ifshowdow % show the day of week if true
+% \end{macrocode}
+% Initially |\formatdate| does nothing. It will be redefined later.
+% \begin{macrocode}
+\providecommand*{\formatdate}[3]{}
+% \end{macrocode}
+% Provide counters to store the specified date:
+% \begin{macrocode}
+\newcount\@day
+\newcount\@month
+\newcount\@year
+% \end{macrocode}
+% Long date format. (This is the default in the absense of package
+% options, babel and datetime.cfg settings.)
+% \begin{macrocode}
+\DeclareRobustCommand*{\longdate}{%
+\renewcommand*{\formatdate}[3]{%
+\ifshowdow\dayofweekname{##1}{##2}{##3} \fi
+\@day=##1\relax\@month=##2\relax\@year=##3\relax
+\ordinaldate{\the\@day}\ \monthname[\@month], \the\@year}}
+% \end{macrocode}
+% Abbreviated version of above
+% \begin{macrocode}
+\DeclareRobustCommand*{\shortdate}{%
+\renewcommand*{\formatdate}[3]{%
+\ifshowdow\shortdayofweekname{##1}{##2}{##3} \fi
+\@day=##1\relax\@month=##2\relax\@year=##3\relax
+\ordinaldate{\the\@day}\ \shortmonthname[\@month], \the\@year}}
+% \end{macrocode}
+% Define |\twodigit| to display a number as two digits. \LaTeX\
+% already defines the internal command |\two@digits|, but need
+% a command that can be used in |\newdateformat| in the document.
+% \begin{macrocode}
+\let\twodigit\two@digits
+% \end{macrocode}
+% Day/month/year format. (Day and month displayed as two digits,
+% year displayed as is.)
+% \begin{macrocode}
+\DeclareRobustCommand*{\ddmmyyyydate}{%
+\renewcommand*{\formatdate}[3]{%
+\@day=##1\relax\@month=##2\relax\@year=##3\relax
+\twodigit\@day\dateseparator \twodigit\@month\dateseparator
+\the\@year}}
+% \end{macrocode}
+% Day/month/year format. (Numbers all displayed as is.)
+% \begin{macrocode}
+\DeclareRobustCommand*{\dmyyyydate}{%
+\renewcommand*{\formatdate}[3]{%
+\@day=##1\relax\@month=##2\relax\@year=##3\relax
+\the\@day\dateseparator \the\@month\dateseparator \the\@year}}
+% \end{macrocode}
+% Day/month/year format. (All numbers displayed as two digits.)
+% \begin{macrocode}
+\DeclareRobustCommand*{\ddmmyydate}{\renewcommand*{\formatdate}[3]{%
+\@day=##1\relax\@month=##2\relax\@year=##3\relax
+\@dtctr=\@year%
+\@modulo{\@dtctr}{100}%
+\twodigit\@day\dateseparator \twodigit\@month\dateseparator
+\twodigit\@dtctr}}
+% \end{macrocode}
+% Day/month/year format. (Day and month displayed as is, year
+% abbreviated to two digits.)
+% \begin{macrocode}
+\DeclareRobustCommand*{\dmyydate}{\renewcommand*{\formatdate}[3]{%
+\@day=##1\relax\@month=##2\relax\@year=##3\relax
+\@dtctr=\@year%
+\@modulo{\@dtctr}{100}%
+\the\@day\dateseparator \the\@month\dateseparator \twodigit\@dtctr}}
+% \end{macrocode}
+% Full textual date.
+% \begin{macrocode}
+\DeclareRobustCommand*{\textdate}{%
+\renewcommand*{\formatdate}[3]{%
+\ifshowdow\dayofweekname{##1}{##2}{##3} the \fi
+\@day=##1\relax\@month=##2\relax\@year=##3\relax
+\@Ordinalstring\@day\ of \monthname[\@month], \@Numberstring\@year}}
+% \end{macrocode}
+% US format (as per original definition of |\today|)
+% \begin{macrocode}
+\DeclareRobustCommand*{\usdate}{%
+\renewcommand*{\formatdate}[3]{%
+\@day=##1\relax\@month=##2\relax\@year=##3\relax
+\monthname[\@month]\ \the\@day, \the\@year}}
+% \end{macrocode}
+% Month/day/year format. (Month and day displayed as two digits,
+% year displayed as is.)
+% \begin{macrocode}
+\DeclareRobustCommand*{\mmddyyyydate}{%
+\renewcommand*{\formatdate}[3]{%
+\@day=##1\relax\@month=##2\relax\@year=##3\relax
+\twodigit\@month\dateseparator \twodigit\@day\dateseparator
+\the\@year}}
+% \end{macrocode}
+% Month/day/year format. (All numbers displayed as is.)
+% \begin{macrocode}
+\DeclareRobustCommand*{\mdyyyydate}{%
+\renewcommand*{\formatdate}[3]{%
+\@day=##1\relax\@month=##2\relax\@year=##3\relax
+\the\@month\dateseparator \the\@day\dateseparator \the\@year}}
+% \end{macrocode}
+% Month/day/year format. (All numbers displayed with two digits.)
+% \begin{macrocode}
+\DeclareRobustCommand*{\mmddyydate}{\renewcommand*{\formatdate}[3]{%
+\@day=##1\relax\@month=##2\relax\@year=##3\relax
+\@dtctr=\@year%
+\@modulo{\@dtctr}{100}%
+\twodigit\@month\dateseparator \twodigit\@day\dateseparator
+\twodigit\@dtctr}}
+% \end{macrocode}
+% Month/day/year format. (Month and day displayed as is, year
+% abbreviated to two digits.)
+% \begin{macrocode}
+\DeclareRobustCommand*{\mdyydate}{\renewcommand*{\formatdate}[3]{%
+\@day=##1\relax\@month=##2\relax\@year=##3\relax
+\@dtctr=\@year%
+\@modulo{\@dtctr}{100}%
+\the\@month\dateseparator \the\@day\dateseparator \twodigit\@dtctr}}
+% \end{macrocode}
+% (New to v.2.45) Define commands to save dates
+% and later format them. Store a given date:
+% \begin{macrocode}
+\newcommand{\newdate}[4]{%
+\@ifundefined{date@#1@y}{%
+\@namedef{date@#1@d}{#2}%
+\@namedef{date@#1@m}{#3}%
+\@namedef{date@#1@y}{#4}}{%
+\PackageError{datetime}{Date `#1' already defined}{}}}
+% \end{macrocode}
+% Display year from previously stored date
+% \begin{macrocode}
+\newcommand{\getdateyear}[1]{%
+\@ifundefined{date@#1@y}{%
+\PackageError{datetime}{Date `#1' not defined}{}}{%
+\csname date@#1@y\endcsname}}
+% \end{macrocode}
+% Display month from previously stored date
+% \begin{macrocode}
+\newcommand{\getdatemonth}[1]{%
+\@ifundefined{date@#1@m}{%
+\PackageError{datetime}{Date `#1' not defined}{}}{%
+\csname date@#1@m\endcsname}}
+% \end{macrocode}
+% Display day from previously stored date
+% \begin{macrocode}
+\newcommand{\getdateday}[1]{%
+\@ifundefined{date@#1@d}{%
+\PackageError{datetime}{Date `#1' not defined}{}}{%
+\csname date@#1@d\endcsname}}
+% \end{macrocode}
+% Display a previously stored date using current date format
+% \begin{macrocode}
+\newcommand{\displaydate}[1]{%
+\@ifundefined{date@#1@y}{%
+\PackageError{datetime}{Date `#1' not defined}{}}{%
+\formatdate{\csname date@#1@d\endcsname}{%
+\csname date@#1@m\endcsname}{%
+\csname date@#1@y\endcsname}}}
+% \end{macrocode}
+% (New to v2.3) Define |\currenttime| which will print the
+% time according to the current format. Set it to 24hr time by default
+% \begin{macrocode}
+\DeclareRobustCommand*{\currenttime}{\xxivtime}
+% \end{macrocode}
+% Define separator for numerical times:
+% \begin{macrocode}
+\newcommand{\timeseparator}{:}
+% \end{macrocode}
+% Switch to specified time format:
+% \begin{macrocode}
+\providecommand{\settimeformat}[1]{%
+\DeclareRobustCommand*\currenttime{\csname#1\endcsname}}
+% \end{macrocode}
+% Set defaults:
+% \begin{macrocode}
+\longdate
+\showdowtrue
+% \end{macrocode}
+% Load in specifications from configuration file:
+% \begin{macrocode}
+\InputIfFileExists{datetime.cfg}{\PackageInfo{datetime}{%
+Loading local datetime configurations}}{%
+\PackageInfo{datetime}{No datetime.cfg file found, using default
+settings}}
+% \end{macrocode}
+% Specify the package options, specify default options and process
+% \begin{macrocode}
+\RequirePackage{fmtcount}
+\DeclareOption{long}{\longdate}
+\DeclareOption{short}{\shortdate}
+\DeclareOption{ddmmyyyy}{\ddmmyyyydate}
+\DeclareOption{dmyyyy}{\dmyyyydate}
+\DeclareOption{ddmmyy}{\ddmmyydate}
+\DeclareOption{dmyy}{\dmyydate}
+\DeclareOption{text}{\textdate}
+\DeclareOption{us}{\usdate}
+\DeclareOption{mmddyyyy}{\mmddyyyydate}
+\DeclareOption{mdyyyy}{\mdyyyydate}
+\DeclareOption{mmddyy}{\mmddyydate}
+\DeclareOption{mdyy}{\mdyydate}
+\DeclareOption{level}{\fmtcountsetoptions{fmtord=level}}
+\DeclareOption{raise}{\fmtcountsetoptions{fmtord=raise}}
+\DeclareOption{dayofweek}{\showdowtrue}
+\DeclareOption{nodayofweek}{\showdowfalse}
+\DeclareOption{nodate}{\@dt@nodatetrue}
+\DeclareOption{24hr}{\settimeformat{xxivtime}}
+\DeclareOption{12hr}{\settimeformat{ampmtime}}
+\DeclareOption{oclock}{\settimeformat{oclock}}
+% \end{macrocode}
+% Multilingual support. These package options shouldn't really be
+% needed if babel has already been loaded.
+% \begin{macrocode}
+\DeclareOption{austrian}{\input{dt-austrian.def}}
+\DeclareOption{bahasa}{\input{dt-bahasa.def}}
+\DeclareOption{basque}{\input{dt-basque.def}}
+\DeclareOption{breton}{\input{dt-breton.def}}
+\DeclareOption{bulgarian}{\input{dt-bulgarian.def}}
+\DeclareOption{catalan}{\input{dt-catalan.def}}
+\DeclareOption{croatian}{\input{dt-croatian.def}}
+\DeclareOption{czech}{\input{dt-czech.def}}
+\DeclareOption{danish}{\input{dt-danish.def}}
+\DeclareOption{dutch}{\input{dt-dutch.def}}
+\DeclareOption{esperanto}{\input{dt-esperanto.def}}
+\DeclareOption{estonian}{\input{dt-estonian.def}}
+\DeclareOption{finnish}{\input{dt-finnish.def}}
+\DeclareOption{french}{\input{dt-french.def}}
+\DeclareOption{galician}{\input{dt-galician.def}}
+\DeclareOption{german}{\input{dt-german.def}}
+\DeclareOption{greek}{\input{dt-greek.def}}
+\DeclareOption{hebrew}{\input{dt-hebrew.def}}
+\DeclareOption{icelandic}{\input{dt-icelandic.def}}
+\DeclareOption{irish}{\input{dt-irish.def}}
+\DeclareOption{italian}{\input{dt-italian.def}}
+\DeclareOption{latin}{\input{dt-latin.def}}
+\DeclareOption{lsorbian}{\input{dt-lsorbian.def}}
+\DeclareOption{magyar}{\input{dt-magyar.def}}
+\DeclareOption{naustrian}{\input{dt-naustrian.def}}
+\DeclareOption{ngerman}{\input{dt-ngerman.def}}
+\DeclareOption{norsk}{\input{dt-norsk.def}}
+\DeclareOption{polish}{\input{dt-polish.def}}
+\DeclareOption{portuges}{\input{dt-portuges.def}}
+\DeclareOption{romanian}{\input{dt-romanian.def}}
+\DeclareOption{russian}{\input{dt-russian.def}}
+\DeclareOption{samin}{\input{dt-samin.def}}
+\DeclareOption{scottish}{\input{dt-scottish.def}}
+\DeclareOption{serbian}{\input{dt-serbian.def}}
+\DeclareOption{slovak}{\input{dt-slovak.def}}
+\DeclareOption{slovene}{\input{dt-slovene.def}}
+\DeclareOption{spanish}{\input{dt-spanish.def}}
+\DeclareOption{swedish}{\input{dt-swedish.def}}
+\DeclareOption{turkish}{\input{dt-turkish.def}}
+\DeclareOption{ukraineb}{\input{dt-ukraineb.def}}
+\DeclareOption{usorbian}{\input{dt-usorbian.def}}
+\DeclareOption{welsh}{\input{dt-welsh.def}}
+% \end{macrocode}
+% Process package options
+% \begin{macrocode}
+\ProcessOptions
+% \end{macrocode}
+% Need ifthen package for conditional stuff.
+% \begin{macrocode}
+\RequirePackage{ifthen}
+% \end{macrocode}
+% \subsubsection{Date Macros}
+% Define the macro that prints the month name.
+% (Only define this command if @dt@nodate is false)
+% \begin{macrocode}
+\if@dt@nodate
+\PackageInfo{datetime}{option "nodate" used, so not defining
+\string\monthname}
+\else
+\providecommand{\monthnameenglish}[1][\month]{%
+\@orgargctr=#1\relax
+\ifcase\@orgargctr
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month
+numbers should go from 1 (January) to 12 (December)}%
+\or January%
+\or February%
+\or March%
+\or April%
+\or May%
+\or June%
+\or July%
+\or August%
+\or September%
+\or October%
+\or November%
+\or December%
+\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (January) to 12 (December)}%
+\fi}
+% \end{macrocode}
+%Define \verb|\monthname| to be language dependent. If there
+%is no \verb|\monthname|\meta{language}, defaults to English.
+% \begin{macrocode}
+\newcommand{\monthname}[1][\month]{%
+\if@dt@multilingual
+\@ifundefined{monthname\languagename}{%
+\PackageWarning{datetime}{No month names provided for language
+'\languagename'}%
+\monthnameenglish[#1]}{\csname monthname\languagename\endcsname[#1]}%
+\else
+\monthnameenglish[#1]%
+\fi}
+% \end{macrocode}
+% End of |\if@dt@nodate| else part:
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+% Define the macro that prints the abbreviated month name
+% (Again, only do this if @dt@nodate is false)
+% \begin{macrocode}
+\if@dt@nodate
+\PackageInfo{datetime}{option "nodate" used, so not defining
+\protect\shortmonthname}
+\else
+\providecommand{\shortmonthnameenglish}[1][\month]{%
+\@orgargctr=#1\relax
+\ifcase\@orgargctr
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month
+numbers should go from 1 (jan) to 12 (dec)}%
+\or Jan%
+\or Feb%
+\or Mar%
+\or Apr%
+\or May%
+\or Jun%
+\or Jul%
+\or Aug%
+\or Sept%
+\or Oct%
+\or Nov%
+\or Dec%
+\else%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month
+numbers should go from 1 (jan) to 12 (dec)}%
+\fi}
+% \end{macrocode}
+% Similarly for abbreviated month names.
+% \begin{macrocode}
+\newcommand{\shortmonthname}[1][\month]{%
+\if@dt@multilingual
+\@ifundefined{shortmonthname\languagename}{%
+\PackageWarning{datetime}{No abbreviated month name defined for
+language '\languagename', using full version instead}%
+\monthname[#1]}{%
+\csname shortmonthname\languagename\endcsname[#1]}%
+\else
+\shortmonthnameenglish[#1]%
+\fi}
+\fi
+% \end{macrocode}
+% Define macros needed to compute the weekday
+% (Again, only do this if @dt@nodate is false)
+% Need to define |\ifleapyear| regardless of @dt@nodate otherwise \LaTeX\ won't
+% match |\ifleapyear| with |\fi|
+% \begin{macrocode}
+\newif\ifleapyear
+% \end{macrocode}
+% Define temporary counter for arithmetic.
+% \begin{macrocode}
+\newcount\@dtctr
+% \end{macrocode}
+% If nodate, add a reminder in the log file that \verb|\dayofweek|
+% is not defined.
+% \begin{macrocode}
+\if@dt@nodate
+\PackageInfo{datetime}{option "nodate" used, so not defining
+\string\dayofweek \space or \string\shortdayofweek}
+\else
+% \end{macrocode}
+% Using the algorithm documented at
+% http://userpages.wittenberg.edu/bshelburne/Comp150/DayofWeek.htm
+% Syntax: \verb|testifleapyear{|\meta{year}\verb|}| sets
+% conditional \verb|\ifleapyear|.
+% \begin{macrocode}
+\providecommand{\testifleapyear}[1]{%
+\leapyearfalse
+\@year=#1\relax
+\@dtctr=\@year
+\@modulo{\@dtctr}{400}%
+\ifnum\@dtctr=0\relax
+\leapyeartrue % year mod 400 = 0 => leap year
+\else
+\@dtctr=\@year
+\@modulo{\@dtctr}{100}%
+\ifnum\@dtctr=0\relax
+\leapyearfalse % year mod 100 = 0 && year mod 400 != 0 => not a leap year
+\else
+\@dtctr=\@year
+\@modulo{\@dtctr}{4}%
+\ifnum\@dtctr=0\relax
+\leapyeartrue % year mod 4 = 0 && year mod 100 != 0 => leap year
+\fi
+\fi
+\fi
+}
+% \end{macrocode}
+% Compute the day of year. Result will be stored in \verb|\dayofyear|
+% Syntax: |\computedayofyear{|\meta{day}|}{|\meta{month}|}{|\meta{year}|}|
+% \begin{macrocode}
+\newcount\dayofyear
+
+\providecommand{\computedayofyear}[3]{%
+\testifleapyear{#3}%
+\dayofyear=0\relax
+\@day=#1\relax \@month=#2\relax \@year=#3\relax
+\ifcase\@month
+\or
+\or \advance\dayofyear by 31\relax
+\or \advance\dayofyear by 59\relax
+\or \advance\dayofyear by 90\relax
+\or \advance\dayofyear by 120\relax
+\or \advance\dayofyear by 151\relax
+\or \advance\dayofyear by 181\relax
+\or \advance\dayofyear by 212\relax
+\or \advance\dayofyear by 243\relax
+\or \advance\dayofyear by 273\relax
+\or \advance\dayofyear by 304\relax
+\or \advance\dayofyear by 334\relax
+\else
+\PackageError{datetime}{Invalid month number}{The second argument to
+\string\computedayofyear \space should lie in the range 1-12}
+\fi
+\ifnum\@month>2\relax
+\ifleapyear\advance\dayofyear by 1\relax\fi
+\fi
+\advance\dayofyear by \@day\relax
+}
+% \end{macrocode}
+% Compute the day of week index. Stored in |\dayofweek|.
+% Syntax: |\computedayofweek{|\meta{day}|}{|\meta{month}|}{|\meta{year}|}|
+% \begin{macrocode}
+\newcount\dayofweek
+
+\providecommand{\computedayofweek}[3]{%
+\computedayofyear{#1}{#2}{#3}%
+\@dtctr=#3\relax
+\advance\@dtctr by -1901\relax
+\@modulo{\@dtctr}{28}%
+\dayofweek=\@dtctr
+\divide\dayofweek by 4\relax
+\advance\dayofweek by \@dtctr
+\advance\dayofweek by 2\relax
+\@modulo{\dayofweek}{7}%
+\advance\dayofweek by \dayofyear
+\advance\dayofweek by -1\relax
+\@modulo{\dayofweek}{7}%
+\advance\dayofweek by 1\relax}
+% \end{macrocode}
+% Given the day of week index, print associated the English name.
+% \begin{macrocode}
+\providecommand{\dayofweeknameidenglish}[1]{%
+\ifcase#1\relax
+\or Sunday%
+\or Monday%
+\or Tuesday%
+\or Wednesday%
+\or Thursday%
+\or Friday%
+\or Saturday%
+\fi}
+% \end{macrocode}
+% Given the day of week index, print the associated name in the
+% current language. If there is none defined for that language
+% default to English.
+% \begin{macrocode}
+\providecommand{\dayofweeknameid}[1]{%
+\if@dt@multilingual
+\@ifundefined{dayofweeknameid\languagename}{%
+\ifthenelse{\equal{\languagename}{nohyphenation}}{}{%
+\PackageWarning{datetime}{No week day names defined for language
+'\languagename', defaulting to English}}%
+\dayofweeknameidenglish{#1}}{%
+\csname dayofweeknameid\languagename\endcsname{#1}}%
+\else
+\dayofweeknameidenglish{#1}%
+\fi
+}
+% \end{macrocode}
+% Print the day of week name for the specified date.
+% \begin{macrocode}
+\providecommand{\dayofweekname}[3]{%
+\computedayofweek{#1}{#2}{#3}%
+\dayofweeknameid{\dayofweek}%
+}
+% \end{macrocode}
+% Print today's day of week name.
+% \begin{macrocode}
+\providecommand{\thisdayofweekname}{%
+\dayofweekname{\day}{\month}{\year}}
+% \end{macrocode}
+% As before, but for abbreviated day of week name. English version:
+% \begin{macrocode}
+\providecommand{\shortdayofweeknameidenglish}[1]{%
+\ifcase#1\relax
+\or Sun%
+\or Mon%
+\or Tue%
+\or Wed%
+\or Thu%
+\or Fri%
+\or Sat%
+\fi}
+% \end{macrocode}
+% Language dependant version:
+% \begin{macrocode}
+\providecommand{\shortdayofweekname}[3]{%
+\computedayofweek{#1}{#2}{#3}%
+\if@dt@multilingual
+\@ifundefined{shortdayofweeknameid\languagename}{%
+\ifthenelse{\equal{\languagename}{nohyphenation}}{}{%
+\PackageWarning{datetime}{No abbreviated week day names defined for
+language '\languagename', defaulting to long version}}%
+\dayofweeknameid{\dayofweek}}{%
+\csname shortdayofweeknameid\languagename\endcsname\dayofweek}%
+\else
+\shortdayofweeknameidenglish{\dayofweek}%
+\fi
+}
+% \end{macrocode}
+% Today's week day name, abbreviated:
+% \begin{macrocode}
+\providecommand{\thisshortdayofweekname}{%
+\dayofweekname{\day}{\month}{\year}}
+% \end{macrocode}
+% End of |\if@dt@nodate| else part.
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+% Redefine |\today| so that it uses |\formatdate|.
+% (Only do this if @dt@nodate is false)
+% \begin{macrocode}
+\if@dt@nodate
+\else
+\DeclareRobustCommand*{\today}{\formatdate{\day}{\month}{\year}}
+\fi
+% \end{macrocode}
+%Check to see if babel package has redefined |\today|.
+% \begin{macrocode}
+\if@dt@nodate
+\else
+\@ifundefined{dateenglish}{}{\let\dateenglish\longdate}
+\@ifundefined{dateaustrian}{}{\input{dt-austrian.def}}
+\@ifundefined{datebahasa}{}{\input{dt-bahasa.def}}
+\@ifundefined{datebasque}{}{\input{dt-basque.def}}
+\@ifundefined{datebreton}{}{\input{dt-breton.def}}
+\@ifundefined{datebulgarian}{}{\input{dt-bulgarian.def}}
+\@ifundefined{datecatalan}{}{\input{dt-catalan.def}}
+\@ifundefined{datecroatian}{}{\input{dt-croatian.def}}
+\@ifundefined{dateczech}{}{\input{dt-czech.def}}
+\@ifundefined{datedanish}{}{\input{dt-danish.def}}
+\@ifundefined{datedutch}{}{\input{dt-dutch.def}}
+\@ifundefined{dateesperanto}{}{\input{dt-esperanto.def}}
+\@ifundefined{dateestonian}{}{\input{dt-estonian.def}}
+\@ifundefined{datefinnish}{}{\input{dt-finnish.def}}
+\@ifundefined{datefrench}{}{\input{dt-french.def}}
+\@ifundefined{dategalician}{}{\input{dt-galician.def}}
+\@ifundefined{dategerman}{}{\input{dt-german.def}}
+\@ifundefined{dategreek}{}{\input{dt-greek.def}}
+\@ifundefined{datehebrew}{}{\input{dt-hebrew.def}}
+\@ifundefined{dateicelandic}{}{\input{dt-icelandic.def}}
+\@ifundefined{dateirish}{}{\input{dt-irish.def}}
+\@ifundefined{dateitalian}{}{\input{dt-italian.def}}
+\@ifundefined{datelatin}{}{\input{dt-latin.def}}
+\@ifundefined{datelsorbian}{}{\input{dt-lsorbian.def}}
+\@ifundefined{datemagyar}{}{\input{dt-magyar.def}}
+\@ifundefined{datenaustrian}{}{\input{dt-naustrian.def}}
+\@ifundefined{datengerman}{}{\input{dt-ngerman.def}}
+\@ifundefined{datenorsk}{}{\input{dt-norsk.def}}
+\@ifundefined{datepolish}{}{\input{dt-polish.def}}
+\@ifundefined{dateportuges}{}{\input{dt-portuges.def}}
+\@ifundefined{dateromanian}{}{\input{dt-romanian.def}}
+\@ifundefined{daterussian}{}{\input{dt-russian.def}}
+\@ifundefined{datesamin}{}{\input{dt-samin.def}}
+\@ifundefined{datescottish}{}{\input{dt-scottish.def}}
+\@ifundefined{dateserbian}{}{\input{dt-serbian.def}}
+\@ifundefined{dateslovak}{}{\input{dt-slovak.def}}
+\@ifundefined{dateslovene}{}{\input{dt-slovene.def}}
+\@ifundefined{datespanish}{}{\input{dt-spanish.def}}
+\@ifundefined{dateswedish}{}{\input{dt-swedish.def}}
+\@ifundefined{dateturkish}{}{\input{dt-turkish.def}}
+\@ifundefined{dateukraineb}{}{\input{dt-ukraineb.def}}
+\@ifundefined{dateusorbian}{}{\input{dt-usorbian.def}}
+\@ifundefined{datewelsh}{}{\input{dt-welsh.def}}
+\fi
+% \end{macrocode}
+% Define |\newdateformat| which defines a declaration that redefines |\formatdate| so that
+% it uses |\dateformat|. |\dateformat| takes four arguments, the first defines the format
+% the last three arguments are the three arguments that effectively get passed to |\formatdate|.
+% |\dateformat| sets |\@day|, |\@month| and |\@year|. |\c@DAY|, |\c@MONTH| and |\c@YEAR|
+% are set as synonims for |\@day|, |\@month| and |\@year|, to that the uses can use the counters
+% |DAY|, |MONTH| and |YEAR| as part of the format.
+% \begin{macrocode}
+\if@dt@nodate
+\PackageInfo{datetime}{option "nodate" used, so not
+defining \string\newdateformat}
+\else
+% \end{macrocode}
+% The commands |\THEDAY|, |\THEMONTH| and |\THEYEAR| should only be
+% used in the argument to |\newdateformat|. This is done partly to
+% assist the \LaTeX2HTML version.
+% \begin{macrocode}
+\providecommand\THEDAY{\the\@day}
+\providecommand\THEMONTH{\the\@month}
+\providecommand\THEYEAR{\the\@year}
+% \end{macrocode}
+% Simulate a \LaTeX\ counter.
+% \begin{macrocode}
+\let\c@DAY=\@day
+\let\c@MONTH=\@month
+\let\c@YEAR=\@year
+% \end{macrocode}
+% Format the given date in the given format.
+% \begin{macrocode}
+\providecommand{\dateformat}[4]{%
+\@day=#2\relax\@month=#3\relax\@year=#4\relax#1}
+% \end{macrocode}
+% Provide a means to define a new date format.
+% \begin{macrocode}
+\providecommand{\newdateformat}[2]{%
+\@ifundefined{#1}{%
+\expandafter\DeclareRobustCommand\csname#1\endcsname{%
+\renewcommand{\formatdate}{\dateformat{#2}}}}{%
+\PackageError{datetime}{Can't create new date format, command
+\textbackslash#1 already defined}{You will need to
+give your new date format a different name}}}
+% \end{macrocode}
+% End of |\if@no@date| else part:
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+% \subsubsection{Time Macros}
+% Define a command to create a new time format, similar to the new
+% date format. Again this is done in a way that makes it easier to
+% code the \LaTeX2HTML version.
+% \begin{macrocode}
+\newcount\c@HOUR
+\newcount\c@HOURXII
+\newcount\c@MINUTE
+\newcount\c@TOHOUR
+\newcount\c@TOMINUTE
+% \end{macrocode}
+% These commands should only be used in |\newtimeformat|.
+% \begin{macrocode}
+\def\THEHOUR{\the\c@HOUR}
+\def\THEHOURXII{\the\c@HOURXII}
+\def\THEMINUTE{\the\c@MINUTE}
+\def\THETOHOUR{\the\c@TOHOUR}
+\def\THETOMINUTE{\the\c@TOMINUTE}
+% \end{macrocode}
+% Provide a means to define a new time format.
+% \begin{macrocode}
+\providecommand{\newtimeformat}[2]{%
+\@ifundefined{#1}{%
+\expandafter\def\csname#1\endcsname{%
+\c@HOUR=\time%
+\divide\c@HOUR by 60\relax
+\c@HOURXII=\c@HOUR
+\ifnum\c@HOURXII>12
+\advance\c@HOURXII by -12\relax
+\fi
+\c@MINUTE=\time%
+\@modulo{\c@MINUTE}{60}%
+\c@TOHOUR=\c@HOURXII
+\advance\c@TOHOUR by 1\relax
+\@modulo{\c@TOHOUR}{12}%
+\c@TOMINUTE=\c@MINUTE
+\advance\c@TOMINUTE by -60\relax
+\multiply\c@TOMINUTE by -1\relax
+#2\relax
+}}{%
+\PackageError{datetime}{Command \textbackslash#1 already defined}{%
+You can't create a new time format called "#1" as the command
+\textbackslash#1 already exists}}}
+% \end{macrocode}
+% Define commands to print the current time. Twenty-four hour time:
+% \begin{macrocode}
+\newtimeformat{xxivtime}{%
+\twodigit\THEHOUR\timeseparator\twodigit\THEMINUTE}
+% \end{macrocode}
+% 12-hour time:
+% \begin{macrocode}
+\newtimeformat{ampmtime}{%
+\THEHOURXII\timeseparator\twodigit\THEMINUTE
+\ifthenelse{\value{HOUR}<12}{\amname}{%
+\ifthenelse{\time=720}{ \noon}{\pmname}}}
+% \end{macrocode}
+% Textual time:
+% \begin{macrocode}
+\newtimeformat{oclock}{\ifthenelse{\time=0 \or \time=720}{%
+% \end{macrocode}
+% Midnight or Midday:
+% \begin{macrocode}
+\ifthenelse{\time=0}{\midnight}{\noon}}{%
+% \end{macrocode}
+% Neither Midnight nor Midday.
+% Do minutes first
+% \begin{macrocode}
+\ifthenelse{\value{MINUTE}=0}{%
+% \end{macrocode}
+% On the hour: don't print any minutes, just do the hour and
+% |\oclockstring|
+% \begin{macrocode}
+\Numberstring{HOUR} \oclockstring}{%
+\ifthenelse{\value{MINUTE}=15}{%
+\quarterpast\ \Numberstring{HOUR}}{%
+\ifthenelse{\value{MINUTE}=30}{%
+\halfpast\ \Numberstring{HOUR}}{%
+\ifthenelse{\value{MINUTE}=45}{%
+\quarterto\ \Numberstring{TOHOUR}}{%
+\ifthenelse{\value{MINUTE}<30}{%
+\Numberstring{MINUTE}\ \ifthenelse{\value{MINUTE}=1}{minute}{minutes}
+past \Numberstring{HOURXII}}{%
+\Numberstring{TOMINUTE}\ \ifthenelse{%
+\value{TOMINUTE}=1}{minute}{minutes} to \Numberstring{TOHOUR}}}}}}\
+% \end{macrocode}
+% Now say whether it is morning or afternoon
+% \begin{macrocode}
+\ifthenelse{\value{HOUR}<12}{%
+% \end{macrocode}
+% Morning
+% \begin{macrocode}
+\amstring}{%
+% \end{macrocode}
+% Afternoon
+% \begin{macrocode}
+\pmstring}}}
+% \end{macrocode}
+% Define textual strings used in the above.
+% \begin{macrocode}
+\providecommand{\amname}{am}
+\providecommand{\pmname}{pm}
+\providecommand{\amorpmname}{%
+\ifthenelse{\value{HOUR}>12}{\pmname}{\amname}}
+\providecommand{\amstring}{in the morning}
+\providecommand{\pmstring}{in the afternoon}
+\providecommand{\amorpmstring}{%
+\ifthenelse{\value{HOUR}>12}{\pmstring}{\amstring}}
+\providecommand{\halfpast}{Half past}
+\providecommand{\quarterpast}{Quarter past}
+\providecommand{\quarterto}{Quarter to}
+\providecommand{\noon}{Noon}
+\providecommand{\midnight}{Midnight}
+\providecommand{\oclockstring}{O'Clock}
+% \end{macrocode}
+% Finally create command that will typeset the date in PDF format
+% e.g. 20040501215500. This is defined regardless of |\if@no@date|
+% as it's provided for use in |\pdfinfo|. Initially |\pdfdate| is set
+% to the year.
+% \begin{macrocode}
+\toksdef\dt@a=0 \toksdef\dt@b=2
+\edef\pdfdate{\the\year}
+% \end{macrocode}
+% Append the month
+% \begin{macrocode}
+\dt@b=\expandafter{\pdfdate}
+\dt@a=\expandafter{\the\month}
+\ifnum\month<10
+\edef\pdfdate{\the\dt@b0\the\dt@a}
+\else
+\edef\pdfdate{\the\dt@b\the\dt@a}
+\fi
+% \end{macrocode}
+% Append the day
+% \begin{macrocode}
+\dt@b=\expandafter{\pdfdate}
+\dt@a=\expandafter{\the\day}
+\ifnum\day<10
+\edef\pdfdate{\the\dt@b0\the\dt@a}
+\else
+\edef\pdfdate{\the\dt@b\the\dt@a}
+\fi
+% \end{macrocode}
+% Append the hour
+% \begin{macrocode}
+\@dtctr=\time%
+\divide\@dtctr by 60\relax
+\dt@b=\expandafter{\pdfdate}
+\dt@a=\expandafter{\the\@dtctr}
+\ifnum\@dtctr<10
+\edef\pdfdate{\the\dt@b0\the\dt@a}
+\else
+\edef\pdfdate{\the\dt@b\the\dt@a}
+\fi
+% \end{macrocode}
+% Append the minute.
+% \begin{macrocode}
+\@dtctr=\time%
+\@modulo{\@dtctr}{60}%
+\dt@b=\expandafter{\pdfdate}
+\dt@a=\expandafter{\the\@dtctr}
+\ifnum\@dtctr<10
+\edef\pdfdate{\the\dt@b0\the\dt@a}
+\else
+\edef\pdfdate{\the\dt@b\the\dt@a}
+\fi
+% \end{macrocode}
+% Append the seconds. \TeX\ doesn't store the seconds, so
+% set to zero.
+% \begin{macrocode}
+\dt@a={00}
+\dt@b=\expandafter{\pdfdate}
+\edef\pdfdate{\the\dt@b\the\dt@a}
+% \end{macrocode}
+%\iffalse
+% \begin{macrocode}
+%</datetime.sty>
+% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-austrian.def>
% \end{macrocode}
-%\section{Compatibility with Babel}
-%Austrian
+%\fi
+%\subsection{Compatibility with Babel (Language definition files)}
+%\subsubsection{Austrian}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-austrian.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnameaustrian}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or J\"anner%
\or Februar%
\or M\"arz%
@@ -670,28 +1575,40 @@
\or Oktober%
\or November%
\or Dezember%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (janvier) to 12 (decembre)}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (janvier) to 12 (decembre)}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dateaustrian{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnameaustrian[\@month]\space\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-austrian.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-bahasa.def>
% \end{macrocode}
-%Bahasa
+%\fi
+%\subsubsection{Bahasa}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-bahasa.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamebahasa}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (Januari) to 12 (Desember)}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (Januari) to 12 (Desember)}%
\or Januari%
\or Pebruari%
\or Maret%
@@ -704,13 +1621,19 @@
\or Oktober%
\or Nopember%
\or Desember%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (Januari) to 12 (Desember)}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (Januari) to 12 (Desember)}%
\fi}
-
+% \end{macrocode}
+% Define abbreviated month names. This currently does the full
+% name, because I don't know the abbreviated versions.
+% \begin{macrocode}
\providecommand{\shortmonthnamebahasa}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (Januari) to 12 (Desember)}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (Januari) to 12 (Desember)}%
\or Januari%
\or Pebruari%
\or Maret%
@@ -723,28 +1646,40 @@
\or Oktober%
\or Nopember%
\or Desember%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (Januari) to 12 (Desember)}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (Januari) to 12 (Desember)}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datebahasa{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day}~\monthnamebahasa[\@month]\space \number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-bahasa.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-basque.def>
% \end{macrocode}
-%Basque
+%\fi
+%\subsubsection{Basque}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-basque.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamebasque}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (urtarrilaren) to 12 (abenduaren)}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (urtarrilaren) to 12 (abenduaren)}%
\or urtarrilaren%
\or otsailaren%
\or martxoaren%
@@ -757,13 +1692,18 @@
\or urriaren%
\or azaroaren%
\or abenduaren%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (urtarrilaren) to 12 (abenduaren)}%
+\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (urtarrilaren) to 12 (abenduaren)}%
\fi}
-
+% \end{macrocode}
+% Define abbreviated month names. This currently does the full
+% name, because I don't know the abbreviated versions.
+% \begin{macrocode}
\providecommand{\shortmonthnamebasque}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (urtarrilaren) to 12 (abenduaren)}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (urtarrilaren) to 12 (abenduaren)}%
\or urtarrilaren%
\or otsailaren%
\or martxoaren%
@@ -776,28 +1716,40 @@
\or urriaren%
\or azaroaren%
\or abenduaren%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (urtarrilaren) to 12 (abenduaren)}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (urtarrilaren) to 12 (abenduaren)}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datebasque{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@year.eko\space\monthnamebasque[\@month]~\number\@day}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-basque.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-breton.def>
% \end{macrocode}
-%Breton
+%\fi
+%\subsubsection{Breton}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-breton.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamebreton}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (Genver) to 12 (Kerzu)}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (Genver) to 12 (Kerzu)}%
\or Genver%
\or C'hwevrer%
\or Meurzh%
@@ -810,13 +1762,19 @@
\or Here%
\or Du%
\or Kerzu%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (Genver) to 12 (Kerzu)}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (Genver) to 12 (Kerzu)}%
\fi}
-
+% \end{macrocode}
+% Define abbreviated month names. This currently does the full
+% name, because I don't know the abbreviated versions.
+% \begin{macrocode}
\providecommand{\shortmonthnamebreton}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (Genver) to 12 (Kerzu)}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (Genver) to 12 (Kerzu)}%
\or Genver%
\or C'hwevrer%
\or Meurzh%
@@ -829,30 +1787,43 @@
\or Here%
\or Du%
\or Kerzu%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (Genver) to 12 (Kerzu)}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (Genver) to 12 (Kerzu)}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datebreton{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\ifnum\@day=1\relax 1\/\textsuperscript{a\~n}\else\number\@day\fi\space
-a\space viz\space\monthnamebreton[\@month]\space\number\@year
+\ifnum\@day=1\relax 1\/\textsuperscript{a\~n}\else\number\@day\fi
+\space a\space viz\space\monthnamebreton[\@month]\space
+\number\@year
}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-breton.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-bulgarian.def>
% \end{macrocode}
-%Bulgarian
+%\fi
+%\subsubsection{Bulgarian}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-bulgarian.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamebulgarian}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or\cyrya\cyrn\cyru\cyra\cyrr\cyri\or
\cyrf\cyre\cyrv\cyrr\cyru\cyra\cyrr\cyri\or
\cyrm\cyra\cyrr\cyrt\or
@@ -865,13 +1836,19 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\cyro\cyrk\cyrt\cyro\cyrm\cyrv\cyrr\cyri\or
\cyrn\cyro\cyre\cyrm\cyrv\cyrr\cyri\or
\cyrd\cyre\cyrk\cyre\cyrm\cyrv\cyrr\cyri
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% Define abbreviated month names. This currently does the full
+% name, because I don't know the abbreviated versions.
+% \begin{macrocode}
\providecommand{\shortmonthnamebulgarian}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or\cyrya\cyrn\cyru\cyra\cyrr\cyri\or
\cyrf\cyre\cyrv\cyrr\cyru\cyra\cyrr\cyri\or
\cyrm\cyra\cyrr\cyrt\or
@@ -884,28 +1861,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\cyro\cyrk\cyrt\cyro\cyrm\cyrv\cyrr\cyri\or
\cyrn\cyro\cyre\cyrm\cyrv\cyrr\cyri\or
\cyrd\cyre\cyrk\cyre\cyrm\cyrv\cyrr\cyri
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datebulgarian{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day~\monthnamebulgarian[\@month]\ \number\@year~\cyrg.}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-bulgarian.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-catalan.def>
% \end{macrocode}
-%Catalan
+%\fi
+%\subsubsection{Catalan}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-catalan.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamecatalan}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (de gener) to 12 (de desembre)}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (de gener) to 12 (de desembre)}%
\or de gener%
\or de febrer%
\or de mar\c{c}%
@@ -918,13 +1907,19 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or d'octubre%
\or de novembre%
\or de desembre%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (de gener) to 12 (de desembre)}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (de gener) to 12 (de desembre)}%
\fi}
-
+% \end{macrocode}
+% Define abbreviated month names. This currently does the full
+% name, because I don't know the abbreviated versions.
+% \begin{macrocode}
\providecommand{\shortmonthnamecatalan}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (de gener) to 12 (de desembre)}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (de gener) to 12 (de desembre)}%
\or de gener%
\or de febrer%
\or de mar\c{c}%
@@ -937,29 +1932,41 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or d'octubre%
\or de novembre%
\or de desembre%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (de gener) to 12 (de desembre)}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (de gener) to 12 (de desembre)}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datecatalan{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day~\monthnamecatalan[\@month]\ de~\number\@year
}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-catalan.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-croatian.def>
% \end{macrocode}
-%Croatian
+%\fi
+%\subsubsection{Croatian}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-croatian.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamecroatian}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (sijecnja) to 12 (prosinca)}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (sijecnja) to 12 (prosinca)}%
\or sije\v{c}nja%
\or velja\v{c}e%
\or o\v{z}ujka%
@@ -972,13 +1979,19 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or listopada%
\or studenog%
\or prosinca%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (sijecnja) to 12 (prosinca)}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (sijecnja) to 12 (prosinca)}%
\fi}
-
+% \end{macrocode}
+% Define abbreviated month names. This currently does the full
+% name, because I don't know the abbreviated versions.
+% \begin{macrocode}
\providecommand{\shortmonthnamecroatian}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (sijecnja) to 12 (prosinca)}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (sijecnja) to 12 (prosinca)}%
\or sije\v{c}nja%
\or velja\v{c}e%
\or o\v{z}ujka%
@@ -991,28 +2004,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or listopada%
\or studenog%
\or prosinca%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (sijecnja) to 12 (prosinca)}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (sijecnja) to 12 (prosinca)}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datecroatian{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnamecroatian[\@month]\space \number\@year.}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-croatian.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-czech.def>
% \end{macrocode}
-%Czech
+%\fi
+%\subsubsection{Czech}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-czech.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnameczech}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or ledna%
\or \'unora%
\or b\v{r}ezna%
@@ -1025,13 +2050,19 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or \v{r}\'{\i}jna%
\or listopadu%
\or prosince%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% Define abbreviated month names. This currently does the full
+% name, because I don't know the abbreviated versions.
+% \begin{macrocode}
\providecommand{\shortmonthnameczech}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or ledna%
\or \'unora%
\or b\v{r}ezna%
@@ -1044,28 +2075,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or \v{r}\'{\i}jna%
\or listopadu%
\or prosince%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dateczech{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnameczech[\@month]\space \number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-czech.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-danish.def>
% \end{macrocode}
-%Danish
+%\fi
+%\subsubsection{Danish}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-danish.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamedanish}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or januar%
\or februar%
\or marts%
@@ -1078,28 +2121,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or oktober%
\or november%
\or december%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datedanish{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnamedanish[\@month]\space \number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-danish.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-dutch.def>
% \end{macrocode}
-%Dutch
+%\fi
+%\subsubsection{Dutch}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-dutch.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamedutch}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or januari%
\or februari%
\or maart%
@@ -1112,28 +2167,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or oktober%
\or november%
\or december%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datedutch{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day~\monthnamedutch[\@month]\space \number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-dutch.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-esperanto.def>
% \end{macrocode}
-%Esperanto
+%\fi
+%\subsubsection{Esperanto}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-esperanto.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnameesperanto}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or januaro%
\or februaro%
\or marto%
@@ -1146,28 +2213,41 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or oktobro%
\or novembro%
\or decembro%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dateesperanto{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\number\@day{--a}~de~\monthnameesperanto[\@month],\space \number\@year}}
+\number\@day{--a}~de~\monthnameesperanto[\@month],\space
+\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-esperanto.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-estonian.def>
% \end{macrocode}
-%Estonian
+%\fi
+%\subsubsection{Estonian}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-estonian.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnameestonian}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or jaanuar%
\or veebruar%
\or m"arts%
@@ -1180,28 +2260,41 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or oktoober%
\or november%
\or detsember%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dateestonian{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\number\@day.\space\monthnameestonian[\@month]\space \number\@year.\space a.}}
+\number\@day.\space\monthnameestonian[\@month]\space
+\number\@year.\space a.}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-estonian.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-finnish.def>
% \end{macrocode}
-%Finnish
+%\fi
+%\subsubsection{Finnish}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-finnish.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamefinnish}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or tammikuuta%
\or helmikuuta%
\or maaliskuuta%
@@ -1214,24 +2307,35 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or lokakuuta%
\or marraskuuta%
\or joulukuuta%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datefinnish{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnamefinnish[\@month]\space \number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-finnish.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-french.def>
% \end{macrocode}
-%French
+%\fi
+%\subsubsection{French}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-french.def}[2004/10/31]
-
+% \end{macrocode}
+% Define week day names.
+% \begin{macrocode}
\providecommand{\dayofweeknameidfrench}[1]{%
\ifcase#1\relax
\or dimanche%
@@ -1242,8 +2346,9 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or vendredi%
\or samedi%
\fi}
-
- % is this correct?
+% \end{macrocode}
+% Define abbreviated week day names (are these correct?)
+% \begin{macrocode}
\providecommand{\shortdayofweeknameidfrench}[1]{%
\ifcase#1\relax
\or dim%
@@ -1254,11 +2359,14 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or ven%
\or sam%
\fi}
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamefrench}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (janvier) to 12 (decembre)}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (janvier) to 12 (decembre)}%
\or janvier%
\or f\'evrier%
\or mars%
@@ -1271,28 +2379,41 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or octobre%
\or novembre%
\or d\'ecembre%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (janvier) to 12 (decembre)}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (janvier) to 12 (decembre)}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datefrench{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\number\@day\ifnum\@day=1{\ier}\fi\space\monthnamefrench[\@month]\space \number\@year}}
+\number\@day\ifnum\@day=1{\ier}\fi\space
+\monthnamefrench[\@month]\space \number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-french.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-galician.def>
% \end{macrocode}
-%Galician
+%\fi
+%\subsubsection{Galician}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-galician.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamegalician}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or xaneiro%
\or febreiro%
\or marzo%
@@ -1305,28 +2426,41 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or outubro%
\or novembro%
\or decembro%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dategalician{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\number\@day~de\space\monthnamegalician[\@month]\space de~\number\@year}}
+\number\@day~de\space\monthnamegalician[\@month]\space
+de~\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-galician.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-german.def>
% \end{macrocode}
-%German
+%\fi
+%\subsubsection{German}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-german.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamegerman}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or Januar%
\or Februar%
\or M\"arz%
@@ -1339,28 +2473,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or Oktober%
\or November%
\or Dezember%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (janvier) to 12 (decembre)}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 (janvier) to 12 (decembre)}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dategerman{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnamegerman[\@month]\space\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-german.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-greek.def>
% \end{macrocode}
-%Greek
+%\fi
+%\subsubsection{Greek}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-greek.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamegreek}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or Ianouar'iou%
\or Febrouar'iou%
\or Mart'iou%
@@ -1373,43 +2519,68 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or Oktwbr'iou%
\or Noembr'iou%
\or Dekembr'iou%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dategreek{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day\space\monthnamegreek[\@month]\space\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-greek.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-hebrew.def>
% \end{macrocode}
-%Hebrew
+%\fi
+%\subsubsection{Hebrew}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-hebrew.def}[2004/10/31]
-
+% \end{macrocode}
+% Babel already provides Hebrew month names, so just provide a
+% synonym.
+% \begin{macrocode}
+\let\monthnamehebrew=\hebmonth
+% \end{macrocode}
+% Redefine declaration to switch to this format. (This uses
+% |\hebdate| which is defined by babel.)
+% \begin{macrocode}
\DeclareRobustCommand*\datehebrew{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\hebdate\@day\@month\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-hebrew.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-icelandic.def>
% \end{macrocode}
-%Icelandic
+%\fi
+%\subsubsection{Icelandic}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-icelandic.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnameicelandic}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or janúar%
\or febrúar%
\or mars%
@@ -1422,28 +2593,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or október%
\or nóvember%
\or desembe%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dateicelandic{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnameicelandic[\@month]\space\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-icelandic.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-irish.def>
% \end{macrocode}
-%Irish
+%\fi
+%\subsubsection{Irish}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-irish.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnameirish}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or Ean\'air%
\or Feabhra%
\or M\'arta%
@@ -1456,28 +2639,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or Deireadh F\'omhair%
\or M\'{\i} na Samhna%
\or M\'{\i} na Nollag%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dateirish{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day\space\monthnameirish[\@month]\space\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-irish.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-italian.def>
% \end{macrocode}
-%Italian
+%\fi
+%\subsubsection{Italian}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-italian.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnameitalian}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or gennaio%
\or febbraio%
\or marzo%
@@ -1490,28 +2685,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or ottobre%
\or novembre%
\or dicembre%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dateitalian{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day\space\monthnameitalian[\@month]\space\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-italian.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-latin.def>
% \end{macrocode}
-%Latin
+%\fi
+%\subsubsection{Latin}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-latin.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamelatin}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or Ianuarii%
\or Februarii%
\or Martii%
@@ -1524,29 +2731,43 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or Octobris%
\or Novembris%
\or Decembris%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datelatin{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont
- \uppercase\expandafter{\romannumeral\@day}~\monthnamelatin[\@month]\space{\uppercase\expandafter{\romannumeral\@year}}}}
+\uppercase\expandafter{\romannumeral\@day}%
+~\monthnamelatin[\@month]\space
+{\uppercase\expandafter{\romannumeral\@year}}}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-latin.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-lsorbian.def>
% \end{macrocode}
-%LSorbian
+%\fi
+%\subsubsection{LSorbian}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-lsorbian.def}[2004/10/31]
-
+% \end{macrocode}
+% Define new month names.
+% \begin{macrocode}
\providecommand{\monthnamenewlsorbian}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or januara%
\or februara%
\or m\v erca%
@@ -1559,13 +2780,18 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or oktobra%
\or nowembra%
\or decembra%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% Define old month names.
+% \begin{macrocode}
\providecommand{\monthnameoldlsorbian}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or wjelikego ro\v zka%
\or ma\l ego ro\v zka%
\or nal\v etnika%
@@ -1578,37 +2804,55 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or winowca%
\or nazymnika%
\or godownika%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% Set the default month names.
+% \begin{macrocode}
\let\monthnamelsorbian=\monthnamenewlsorbian
-
+% \end{macrocode}
+% (Re)Define declaration to switch to new format.
+% \begin{macrocode}
\DeclareRobustCommand*\newdatelsorbian{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnamenewlsorbian[\@month]\space\number\@year}}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to old format.
+% \begin{macrocode}
\DeclareRobustCommand*\olddatelsorbian{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnameoldlsorbian[\@month]\space\number\@year}}
-
+% \end{macrocode}
+% Set the default date format.
+% \begin{macrocode}
\let\datelsorbian\newdatelsorbian
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-lsorbian.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-magyar.def>
% \end{macrocode}
-%Magyar
+%\fi
+%\subsubsection{Magyar}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-magyar.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamemagyar}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or janu\'ar%
\or febru\'ar%
\or m\'arcius%
@@ -1621,28 +2865,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or okt\'ober%
\or november%
\or december%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datemagyar{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@year.~\monthnamemagyar[\@month]\space\number\@day.}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-magyar.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-naustrian.def>
% \end{macrocode}
-%NAustrian
+%\fi
+%\subsubsection{NAustrian}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-naustrian.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamenaustrian}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or J\"anner%
\or Februar%
\or M\"arz%
@@ -1655,28 +2911,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or Oktober%
\or November%
\or Dezember%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datenaustrian{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnamenaustrian[\@month]\space\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-naustrian.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-ngerman.def>
% \end{macrocode}
-%NGerman
+%\fi
+%\subsubsection{NGerman}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-ngerman.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamengerman}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or Januar%
\or Februar%
\or M\"arz%
@@ -1689,28 +2957,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or Oktober%
\or November%
\or Dezember%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datengerman{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnamengerman[\@month]\space\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-ngerman.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-norsk.def>
% \end{macrocode}
-%Norsk
+%\fi
+%\subsubsection{Norsk}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-norsk.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamenorsk}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or januar%
\or februar%
\or mars%
@@ -1723,28 +3003,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or oktober%
\or november%
\or desember%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datenorsk{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnamenorsk[\@month]\space\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-norsk.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-polish.def>
% \end{macrocode}
-%Polish
+%\fi
+%\subsubsection{Polish}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-polish.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamepolish}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or stycznia%
\or lutego%
\or marca%
@@ -1757,24 +3049,35 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or pa\'zdziernika%
\or listopada%
\or grudnia%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datepolish{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day~\monthnamepolish[\@month]\space\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-polish.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-portuges.def>
% \end{macrocode}
-%Portuges
+%\fi
+%\subsubsection{Portuges}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-portuges.def}[2004/10/31]
-
+% \end{macrocode}
+% Define week day names.
+% \begin{macrocode}
\providecommand{\dayofweeknameidportuges}[1]{%
\ifcase#1\relax
\or domingo%
@@ -1785,11 +3088,14 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or sexta-feira%
\or sabado%
\fi}
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnameportuges}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or Janeiro%
\or Fevereiro%
\or Mar\c{c}o%
@@ -1802,28 +3108,41 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or Outubro%
\or Novembro%
\or Dezembro%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dateportuges{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\number\@day\space de\space\monthnameportuges[\@month]\space de\space\number\@year}}
+\number\@day\space de\space\monthnameportuges[\@month]\space
+de\space\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-portuges.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-romanian.def>
% \end{macrocode}
-%Romanian
+%\fi
+%\subsubsection{Romanian}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-romanian.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnameromanian}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or ianuarie%
\or februarie%
\or martie%
@@ -1836,28 +3155,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or octombrie%
\or noiembrie%
\or decembrie%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dateromanian{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day~\monthnameromanian[\@month]\space\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-romanian.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-russian.def>
% \end{macrocode}
-%Russian
+%\fi
+%\subsubsection{Russian}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-russian.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamerussian}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or \cyrya\cyrn\cyrv\cyra\cyrr\cyrya\or
\cyrf\cyre\cyrv\cyrr\cyra\cyrl\cyrya\or
\cyrm\cyra\cyrr\cyrt\cyra\or
@@ -1870,28 +3201,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\cyro\cyrk\cyrt\cyrya\cyrb\cyrr\cyrya\or
\cyrn\cyro\cyrya\cyrb\cyrr\cyrya\or
\cyrd\cyre\cyrk\cyra\cyrb\cyrr\cyrya%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\daterussian{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day~\monthnamerussian[\@month]\ \number\@year~\cyrg.}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-russian.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-samin.def>
% \end{macrocode}
-%Samin
+%\fi
+%\subsubsection{Samin}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-samin.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamesamin}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or o\dj{}\dj{}ajagem\'anu\or
guovvam\'anu\or
njuk\v cam\'anu\or
@@ -1904,28 +3247,41 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
golggotm\'anu\or
sk\'abmam\'anu\or
juovlam\'anu%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datesamin{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\monthnamesamin[\@month]\space\number\@day.~b.\space \number\@year}}
+\monthnamesamin[\@month]\space\number\@day.~b.\space
+\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-samin.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-scottish.def>
% \end{macrocode}
-%Scottish
+%\fi
+%\subsubsection{Scottish}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-scottish.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamescottish}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or am Faoilteach%
\or an Gearran%
\or am M\`art%
@@ -1938,28 +3294,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or an D\`amhar%
\or an t-Samhainn%
\or an Dubhlachd%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datescottish{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day\space\monthnamescottish[\@month]\space \number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-scottish.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-serbian.def>
% \end{macrocode}
-%Serbian
+%\fi
+%\subsubsection{Serbian}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-serbian.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnameserbian}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or januar%
\or februar%
\or mart%
@@ -1972,28 +3340,40 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or oktobar%
\or novembar%
\or decembar%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dateserbian{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnameserbian[\@month]\space \number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-serbian.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-slovak.def>
% \end{macrocode}
-%Slovak
+%\fi
+%\subsubsection{Slovak}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-slovak.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnameslovak}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month
+numbers should go from 1 to 12}%
\or janu\'ara%
\or febru\'ara%
\or marca%
@@ -2006,28 +3386,39 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or okt\'obra%
\or novembra%
\or decembra%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dateslovak{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnameslovak[\@month]\space \number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-slovak.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-slovene.def>
% \end{macrocode}
-%Slovene
+%\fi
+%\subsubsection{Slovene}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-slovene.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnameslovene}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or januar%
\or februar%
\or marec%
@@ -2040,24 +3431,34 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or oktober%
\or november%
\or december%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dateslovene{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnameslovene[\@month]\space \number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-slovene.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-spanish.def>
% \end{macrocode}
-%Spanish
+%\fi
+%\subsubsection{Spanish}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-spanish.def}[2004/10/31]
-
+% \end{macrocode}
+% Define week day names.
+% \begin{macrocode}
\providecommand{\dayofweeknameidspanish}[1]{%
\ifcase#1\relax
\or domingo%
@@ -2068,8 +3469,9 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or viernes%
\or s\'abado%
\fi}
-
- % is this correct?
+% \end{macrocode}
+% Define abbreviated week day names (is this correct?)
+% \begin{macrocode}
\providecommand{\shortdayofweeknameidspanish}[1]{%
\ifcase#1\relax
\or dom%
@@ -2080,11 +3482,14 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or vie%
\or s\'ab%
\fi}
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamespanish}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or enero%
\or febrero%
\or marzo%
@@ -2097,28 +3502,39 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or octubre%
\or noviembre%
\or diciembre%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datespanish{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day~de \monthnamespanish[\@month]\ de~\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-spanish.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-swedish.def>
% \end{macrocode}
-%Swedish
+%\fi
+%\subsubsection{Swedish}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-swedish.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnameswedish}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or januari%
\or februari%
\or mars%
@@ -2131,40 +3547,58 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or oktober%
\or november%
\or december%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format
+% (day monthname year).
+% \begin{macrocode}
\DeclareRobustCommand*\dateswedish{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day~\monthnameswedish[\@month]\space\number\@year}}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format
+% (two-digit numerical).
+% \begin{macrocode}
\DeclareRobustCommand*\datesymd{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@year-\two@digits\@month-\two@digits\@day}
}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format
+% (numerical).
+% \begin{macrocode}
\DeclareRobustCommand*\datesdmy{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day/\number\@month\space\number\@year}
}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-swedish.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-turkish.def>
% \end{macrocode}
-%Turkish
+%\fi
+%\subsubsection{Turkish}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-turkish.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnameturkish}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or Ocak%
\or \c Subat%
\or Mart%
@@ -2177,28 +3611,39 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or Ekim%
\or Kas\i{}m%
\or Aral\i{}k%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dateturkish{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day~\monthnameturkish[\@month]\space\number\@year}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-turkish.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-ukraineb.def>
% \end{macrocode}
-%Ukraine
+%\fi
+%\subsubsection{Ukraine}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-ukraineb.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnameukraineb}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or \cyrs\cyrii\cyrch\cyrn\cyrya\or
\cyrl\cyryu\cyrt\cyro\cyrg\cyro\or
\cyrb\cyre\cyrr\cyre\cyrz\cyrn\cyrya\or
@@ -2211,28 +3656,39 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\cyrzh\cyro\cyrv\cyrt\cyrn\cyrya\or
\cyrl\cyri\cyrs\cyrt\cyro\cyrp\cyra\cyrd\cyra\or
\cyrg\cyrr\cyru\cyrd\cyrn\cyrya%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\dateukraineb{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day~\monthnameukraineb[\@month]\space\number\@year~\cyrr.}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-ukraineb.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-usorbian.def>
% \end{macrocode}
-%USorbian
+%\fi
+%\subsubsection{USorbian}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-usorbian.def}[2004/10/31]
-
+% \end{macrocode}
+% Define (new) month names.
+% \begin{macrocode}
\providecommand{\monthnamenewusorbian}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or januara%
\or februara%
\or m\v erca%
@@ -2245,13 +3701,17 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or oktobra%
\or nowembra%
\or decembra%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% Define (old) month names.
+% \begin{macrocode}
\providecommand{\monthnameoldusorbian}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or wulkeho r\'o\v zka%
\or ma\l eho r\'o\v zka%
\or nal\v etnika%
@@ -2266,35 +3726,51 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or hodownika%
\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% Set up default
+% \begin{macrocode}
\let\monthnameusorbian=\monthnamenewusorbian
-
+% \end{macrocode}
+% (Re)Define declaration to switch to (new) format.
+% \begin{macrocode}
\DeclareRobustCommand*\newdateusorbian{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnamenewusorbian[\@month]\space\number\@year}}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to (old) format.
+% \begin{macrocode}
\DeclareRobustCommand*\olddateusorbian{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day.~\monthnameoldusorbian[\@month]\space\number\@year}}
-
+% \end{macrocode}
+% Set up default
+% \begin{macrocode}
\let\dateusorbian\newdateusorbian
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-usorbian.def>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-welsh.def>
% \end{macrocode}
-%Welsh
+%\fi
+%\subsubsection{Welsh}
+% Identify file
% \begin{macrocode}
\ProvidesFile{dt-welsh.def}[2004/10/31]
-
+% \end{macrocode}
+% Define month names.
+% \begin{macrocode}
\providecommand{\monthnamewelsh}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\or Ionawr%
\or Chwefror%
\or Mawrth%
@@ -2307,666 +3783,30 @@ a\space viz\space\monthnamebreton[\@month]\space\number\@year
\or Hydref%
\or Tachwedd%
\or Rhagfyr%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}%
+\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{%
+Month numbers should go from 1 to 12}%
\fi}
-
+% \end{macrocode}
+% (Re)Define declaration to switch to this format.
+% \begin{macrocode}
\DeclareRobustCommand*\datewelsh{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\ifnum\@day=1\relax 1\/$^{\mathrm{a\tilde{n}}}$\else
-\number\@day\fi \space a\space viz\space\monthnamewelsh[\@month]\space\number\@year}}
+\number\@day\fi \space a\space viz\space
+\monthnamewelsh[\@month]\space\number\@year}}
% \end{macrocode}
+% \subsection{LaTeX2HTML Perl Script}
+%\iffalse
% \begin{macrocode}
%</dt-welsh.def>
% \end{macrocode}
-% \begin{macrocode}
-%<*datetime.sty>
-% \end{macrocode}
-%\subsection{datetime.sty}
-% This section deals with the code for \texttt{datetime.sty}
-% \begin{macrocode}
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{datetime}[2005/09/30 v2.46 Date Time Package]
-% \end{macrocode}
-%\texttt{fmtcount.sty} needs to be loaded here as it defines the command |\fmtord| which may be redefined later:
-% \begin{macrocode}
-\RequirePackage{fmtcount}
-% \end{macrocode}
-% Define a new conditional |\if@dt@nodate|. If it is true,
-% |\today| will not be redefined, nor will
-% |\monthname|, |\shortmonthname|, |\dayofweek| and |\shortdayofweek| be defined.
-% Set it to false.
-% \begin{macrocode}
-\newif\if@dt@nodate
-\@dt@nodatefalse
-% \end{macrocode}
-% Define the character used to separate the numbers in the formats defined by
-% |\ddmmyyyy| etc
-% \begin{macrocode}
-\newcommand{\dateseparator}{/}
-% \end{macrocode}
-% Define |\ordinaldate|. This is needed because some
-% languages only use an ordinal for the first day of
-% the month (such as french). This isn't really needed
-% here, but the LaTeX2HTML style file needs this command.
-% \begin{macrocode}
-\newcommand{\ordinaldateenglish}[1]{\ordinalnum{#1}}
-\let\ordinaldatenohyphenation=\ordinaldateenglish
-
-\newcommand{\ordinaldatewelsh}[1]{%
-#1\ifnum#1=1\/\textsuperscript{a\~n}\fi}
-
-\newcommand{\ordinaldatebreton}[1]{%
-#1\ifnum#1=1\/\textsuperscript{a\~n}\fi}
-
-\newcommand{\ordinaldatefrench}[1]{%
-#1\ifnum#1=1\ier\fi}
-
-\newcommand{\ordinaldate}[1]{%
-\@ifundefined{languagename}{\ordinalnum{#1}}{%
-\@ifundefined{ordinaldate\languagename}{#1}{%
-\csname ordinaldate\languagename\endcsname{#1}}}}
-% \end{macrocode}
-% Now define the declarations that redefine |\formatdate| as they
-% are used by the package options.
-% \begin{macrocode}
-\newif\ifshowdow % show the day of week if true
-
-\providecommand{\formatdate}[3]{}
-
-\newcount\@day
-\newcount\@month
-\newcount\@year
-
-\DeclareRobustCommand*{\longdate}{%
-\renewcommand{\formatdate}[3]{\ifshowdow\dayofweekname{##1}{##2}{##3} \fi
-\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\ordinaldate{\the\@day}\ \monthname[\@month], \the\@year}}
-
-\DeclareRobustCommand*{\shortdate}{%
-\renewcommand{\formatdate}[3]{\ifshowdow\shortdayofweekname{##1}{##2}{##3} \fi
-\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\ordinaldate{\the\@day}\ \shortmonthname[\@month], \the\@year}}
-
-\providecommand*{\twodigit}[1]{{\@dtctr=#1\relax\ifnum\@dtctr<10 0\fi\the\@dtctr}}
-
-\DeclareRobustCommand*{\ddmmyyyydate}{%
-\renewcommand{\formatdate}[3]{\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\twodigit\@day\dateseparator \twodigit\@month\dateseparator \the\@year}}
-
-\DeclareRobustCommand*{\dmyyyydate}{%
-\renewcommand{\formatdate}[3]{\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\the\@day\dateseparator \the\@month\dateseparator \the\@year}}
-
-\DeclareRobustCommand*{\ddmmyydate}{\renewcommand{\formatdate}[3]{%
-\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\@dtctr=\@year%
-\@modulo{\@dtctr}{100}%
-\twodigit\@day\dateseparator \twodigit\@month\dateseparator \twodigit\@dtctr}}
-
-\DeclareRobustCommand*{\dmyydate}{\renewcommand{\formatdate}[3]{%
-\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\@dtctr=\@year%
-\@modulo{\@dtctr}{100}%
-\the\@day\dateseparator \the\@month\dateseparator \twodigit\@dtctr}}
-
-\DeclareRobustCommand*{\textdate}{%
-\renewcommand{\formatdate}[3]{\ifshowdow\dayofweekname{##1}{##2}{##3} the \fi
-\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\@Ordinalstring\@day\ of \monthname[\@month], \@Numberstring\@year}}
-
-\DeclareRobustCommand*{\usdate}{%
-\renewcommand{\formatdate}[3]{\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\monthname[\@month]\ \the\@day, \the\@year}}
-
-\DeclareRobustCommand*{\mmddyyyydate}{%
-\renewcommand{\formatdate}[3]{\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\twodigit\@month\dateseparator \twodigit\@day\dateseparator \the\@year}}
-
-\DeclareRobustCommand*{\mdyyyydate}{%
-\renewcommand{\formatdate}[3]{\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\the\@month\dateseparator \the\@day\dateseparator \the\@year}}
-
-\DeclareRobustCommand*{\mmddyydate}{\renewcommand{\formatdate}[3]{%
-\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\@dtctr=\@year%
-\@modulo{\@dtctr}{100}%
-\twodigit\@month\dateseparator \twodigit\@day\dateseparator \twodigit\@dtctr}}
-
-\DeclareRobustCommand*{\mdyydate}{\renewcommand{\formatdate}[3]{%
-\@day=##1\relax\@month=##2\relax\@year=##3\relax
-\@dtctr=\@year%
-\@modulo{\@dtctr}{100}%
-\the\@month\dateseparator \the\@day\dateseparator \twodigit\@dtctr}}
-% \end{macrocode}
-% (New to v.2.45) Define commands to save dates
-% and later format them.
-% \begin{macrocode}
-\newcommand{\newdate}[4]{%
-\@ifundefined{date@#1@y}{%
-\@namedef{date@#1@d}{#2}%
-\@namedef{date@#1@m}{#3}%
-\@namedef{date@#1@y}{#4}}{%
-\PackageError{datetime}{Date `#1' already defined}{}}}
-
-\newcommand{\getdateyear}[1]{%
-\@ifundefined{date@#1@y}{%
-\PackageError{datetime}{Date `#1' not defined}{}}{%
-\csname date@#1@y\endcsname}}
-
-\newcommand{\getdatemonth}[1]{%
-\@ifundefined{date@#1@m}{%
-\PackageError{datetime}{Date `#1' not defined}{}}{%
-\csname date@#1@m\endcsname}}
-
-\newcommand{\getdateday}[1]{%
-\@ifundefined{date@#1@d}{%
-\PackageError{datetime}{Date `#1' not defined}{}}{%
-\csname date@#1@d\endcsname}}
-
-\newcommand{\displaydate}[1]{%
-\@ifundefined{date@#1@y}{%
-\PackageError{datetime}{Date `#1' not defined}{}}{%
-\formatdate{\csname date@#1@d\endcsname}{%
-\csname date@#1@m\endcsname}{%
-\csname date@#1@y\endcsname}}}
-% \end{macrocode}
-% (New to v2.3) Define |\currenttime| which will print the
-% time according to the current format. Set it to 24hr time by default
-% \begin{macrocode}
-\DeclareRobustCommand*{\currenttime}{\xxivtime}
-
-\newcommand{\timeseparator}{:}
-
-\providecommand{\settimeformat}[1]{\DeclareRobustCommand*\currenttime{\csname#1\endcsname}}
-% \end{macrocode}
-% Set defaults:
-% \begin{macrocode}
-\longdate
-\showdowtrue
-% \end{macrocode}
-% Load in specifications from configuration file:
-% \begin{macrocode}
-\InputIfFileExists{datetime.cfg}{\typeout{Loading local datetime configurations}}{\typeout{No datetime.cfg file found}}
-% \end{macrocode}
-% Specify the package options, specify default options and process
-% \begin{macrocode}
-\RequirePackage{fmtcount}
-\DeclareOption{long}{\longdate}
-\DeclareOption{short}{\shortdate}
-\DeclareOption{ddmmyyyy}{\ddmmyyyydate}
-\DeclareOption{dmyyyy}{\dmyyyydate}
-\DeclareOption{ddmmyy}{\ddmmyydate}
-\DeclareOption{dmyy}{\dmyydate}
-\DeclareOption{text}{\textdate}
-\DeclareOption{us}{\usdate}
-\DeclareOption{mmddyyyy}{\mmddyyyydate}
-\DeclareOption{mdyyyy}{\mdyyyydate}
-\DeclareOption{mmddyy}{\mmddyydate}
-\DeclareOption{mdyy}{\mdyydate}
-\DeclareOption{level}{\fmtcountsetoptions{fmtord=level}}
-\DeclareOption{raise}{\fmtcountsetoptions{fmtord=raise}}
-\DeclareOption{dayofweek}{\showdowtrue}
-\DeclareOption{nodayofweek}{\showdowfalse}
-\DeclareOption{nodate}{\@dt@nodatetrue}
-\DeclareOption{24hr}{\settimeformat{xxivtime}}
-\DeclareOption{12hr}{\settimeformat{ampmtime}}
-\DeclareOption{oclock}{\settimeformat{oclock}}
-
-% babel stuff
-
-\DeclareOption{austrian}{\input{dt-austrian.def}}
-\DeclareOption{bahasa}{\input{dt-bahasa.def}}
-\DeclareOption{basque}{\input{dt-basque.def}}
-\DeclareOption{breton}{\input{dt-breton.def}}
-\DeclareOption{bulgarian}{\input{dt-bulgarian.def}}
-\DeclareOption{catalan}{\input{dt-catalan.def}}
-\DeclareOption{croatian}{\input{dt-croatian.def}}
-\DeclareOption{czech}{\input{dt-czech.def}}
-\DeclareOption{danish}{\input{dt-danish.def}}
-\DeclareOption{dutch}{\input{dt-dutch.def}}
-\DeclareOption{esperanto}{\input{dt-esperanto.def}}
-\DeclareOption{estonian}{\input{dt-estonian.def}}
-\DeclareOption{finnish}{\input{dt-finnish.def}}
-\DeclareOption{french}{\input{dt-french.def}}
-\DeclareOption{galician}{\input{dt-galician.def}}
-\DeclareOption{german}{\input{dt-german.def}}
-\DeclareOption{greek}{\input{dt-greek.def}}
-\DeclareOption{hebrew}{\input{dt-hebrew.def}}
-\DeclareOption{icelandic}{\input{dt-icelandic.def}}
-\DeclareOption{irish}{\input{dt-irish.def}}
-\DeclareOption{italian}{\input{dt-italian.def}}
-\DeclareOption{latin}{\input{dt-latin.def}}
-\DeclareOption{lsorbian}{\input{dt-lsorbian.def}}
-\DeclareOption{magyar}{\input{dt-magyar.def}}
-\DeclareOption{naustrian}{\input{dt-naustrian.def}}
-\DeclareOption{ngerman}{\input{dt-ngerman.def}}
-\DeclareOption{norsk}{\input{dt-norsk.def}}
-\DeclareOption{polish}{\input{dt-polish.def}}
-\DeclareOption{portuges}{\input{dt-portuges.def}}
-\DeclareOption{romanian}{\input{dt-romanian.def}}
-\DeclareOption{russian}{\input{dt-russian.def}}
-\DeclareOption{samin}{\input{dt-samin.def}}
-\DeclareOption{scottish}{\input{dt-scottish.def}}
-\DeclareOption{serbian}{\input{dt-serbian.def}}
-\DeclareOption{slovak}{\input{dt-slovak.def}}
-\DeclareOption{slovene}{\input{dt-slovene.def}}
-\DeclareOption{spanish}{\input{dt-spanish.def}}
-\DeclareOption{swedish}{\input{dt-swedish.def}}
-\DeclareOption{turkish}{\input{dt-turkish.def}}
-\DeclareOption{ukraineb}{\input{dt-ukraineb.def}}
-\DeclareOption{usorbian}{\input{dt-usorbian.def}}
-\DeclareOption{welsh}{\input{dt-welsh.def}}
-
-\ProcessOptions
-\RequirePackage{ifthen}
-% \end{macrocode}
-% \subsubsection{Date Macros}
-% Define the macro that prints the month name.
-% (Only define this command if @dt@nodate is false)
-% \begin{macrocode}
-\if@dt@nodate
-\typeout{datetime package message : option "nodate" used, so not defining \protect\monthname}
-\else
-\providecommand{\monthnameenglish}[1][\month]{%
-\@orgargctr=#1\relax
-\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (January) to 12 (December)}%
-\or January%
-\or February%
-\or March%
-\or April%
-\or May%
-\or June%
-\or July%
-\or August%
-\or September%
-\or October%
-\or November%
-\or December%
-\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (January) to 12 (December)}%
-\fi}
-
-
- %\let\monthname=\monthnameenglish
-\newcommand{\monthname}{\@ifundefined{languagename}{%
-\monthnameenglish}{\@ifundefined{monthname\languagename}{%
-\monthnameenglish}{\csname monthname\languagename\endcsname}}}
-\fi
-% \end{macrocode}
-% Define the macro that prints the abbreviated month name
-% (Again, only do this if @dt@nodate is false)
-% \begin{macrocode}
-\if@dt@nodate
-\typeout{datetime package message : option "nodate" used, so not defining \protect\shortmonthname}
-\else
-\providecommand{\shortmonthnameenglish}[1][\month]{%
-\@orgargctr=#1\relax
-\ifcase\@orgargctr
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (jan) to 12 (dec)}%
-\or Jan%
-\or Feb%
-\or Mar%
-\or Apr%
-\or May%
-\or Jun%
-\or Jul%
-\or Aug%
-\or Sept%
-\or Oct%
-\or Nov%
-\or Dec%
-\else%
-\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (jan) to 12 (dec)}%
-\fi}
-
- %\let\shortmonthname=\shortmonthnameenglish
-
-\newcommand{\shortmonthname}{\@ifundefined{languagename}{%
-\shortmonthnameenglish}{\@ifundefined{shortmonthname\languagename}{%
-\shortmonthnameenglish}{\csname shortmonthname\languagename\endcsname}}}
-\fi
-% \end{macrocode}
-% Define macros needed to compute the weekday
-% (Again, only do this if @dt@nodate is false)
-% Need to define |\ifleapyear| regardless of @dt@nodate otherwise \LaTeX\ won't
-% match |\ifleapyear| with |\fi|
-% \begin{macrocode}
-\newif\ifleapyear
-
-\newcount\@dtctr
-
-\if@dt@nodate
-\typeout{datetime package message : option "nodate" used, so not defining \protect\dayofweek \space or \protect\shortdayofweek}
-\else
-% Using the algorithm documented at
-% http://userpages.wittenberg.edu/bshelburne/Comp150/DayofWeek.htm
-
-% \testifleapyear{<year>}
-\providecommand{\testifleapyear}[1]{%
-\leapyearfalse
-\@year=#1\relax
-\@dtctr=\@year
-\@modulo{\@dtctr}{400}%
-\ifnum\@dtctr=0\relax
-\leapyeartrue % year mod 400 = 0 => leap year
-\else
-\@dtctr=\@year
-\@modulo{\@dtctr}{100}%
-\ifnum\@dtctr=0\relax
-\leapyearfalse % year mod 100 = 0 && year mod 400 != 0 => not a leap year
-\else
-\@dtctr=\@year
-\@modulo{\@dtctr}{4}%
-\ifnum\@dtctr=0\relax
-\leapyeartrue % year mod 4 = 0 && year mod 100 != 0 => leap year
-\fi
-\fi
-\fi
-}
-
-\newcount\dayofyear
-
-% \computedayofyear{<day>}{<month>}{<year>}
-
-\providecommand{\computedayofyear}[3]{%
-\testifleapyear{#3}%
-\dayofyear=0\relax
-\@day=#1\relax \@month=#2\relax \@year=#3\relax
-\ifcase\@month
-\or
-\or \advance\dayofyear by 31\relax
-\or \advance\dayofyear by 59\relax
-\or \advance\dayofyear by 90\relax
-\or \advance\dayofyear by 120\relax
-\or \advance\dayofyear by 151\relax
-\or \advance\dayofyear by 181\relax
-\or \advance\dayofyear by 212\relax
-\or \advance\dayofyear by 243\relax
-\or \advance\dayofyear by 273\relax
-\or \advance\dayofyear by 304\relax
-\or \advance\dayofyear by 334\relax
-\else
-\PackageError{datetime}{Invalid month number}{The second argument to \protect\computedayofyear
-should lie in the range 1-12}
-\fi
-\ifnum\@month>2\relax
-\ifleapyear\advance\dayofyear by 1\relax\fi
-\fi
-\advance\dayofyear by \@day\relax
-}
-
-\newcount\dayofweek
-
-% \computedayofweek{<day>}{<month>}{<year>}
-
-\providecommand{\computedayofweek}[3]{%
-\computedayofyear{#1}{#2}{#3}%
-\@dtctr=#3\relax
-\advance\@dtctr by -1901\relax
-\@modulo{\@dtctr}{28}%
-\dayofweek=\@dtctr
-\divide\dayofweek by 4\relax
-\advance\dayofweek by \@dtctr
-\advance\dayofweek by 2\relax
-\@modulo{\dayofweek}{7}%
-\advance\dayofweek by \dayofyear
-\advance\dayofweek by -1\relax
-\@modulo{\dayofweek}{7}%
-\advance\dayofweek by 1\relax}
-
-\providecommand{\dayofweeknameidenglish}[1]{%
-\ifcase#1\relax
-\or Sunday%
-\or Monday%
-\or Tuesday%
-\or Wednesday%
-\or Thursday%
-\or Friday%
-\or Saturday%
-\fi}
-
-\providecommand{\dayofweeknameid}[1]{%
-\@ifundefined{languagename}{%
-\dayofweeknameidenglish{#1}}{%
-\@ifundefined{dayofweeknameid\languagename}{%
-\dayofweeknameidenglish{#1}}{%
-\csname dayofweeknameid\languagename\endcsname{#1}}}%
-}
-
-\providecommand{\dayofweekname}[3]{%
-\computedayofweek{#1}{#2}{#3}%
-\dayofweeknameid{\dayofweek}%
-}
-
-\providecommand{\thisdayofweekname}{%
-\dayofweekname{\day}{\month}{\year}}
-
-\providecommand{\shortdayofweeknameidenglish}[1]{%
-\ifcase#1\relax
-\or Sun%
-\or Mon%
-\or Tue%
-\or Wed%
-\or Thu%
-\or Fri%
-\or Sat%
-\fi}
-
-\providecommand{\shortdayofweekname}[3]{%
-\computedayofweek{#1}{#2}{#3}%
-\@ifundefined{languagename}{%
-\shortdayofweeknameidenglish{\dayofweek}}{%
-\@ifundefined{shortdayofweeknameid\languagename}{%
-\shortdayofweeknameidenglish{\dayofweek}}{%
-\csname shortdayofweeknameid\languagename\endcsname\dayofweek}}%
-}
-
-\fi
-
-\providecommand{\thisshortdayofweekname}{\dayofweekname{\day}{\month}{\year}}
-% \end{macrocode}
-% Redefine |\today| so that it uses |\formatdate|.
-% (Only do this if @dt@nodate is false)
-% \begin{macrocode}
-\if@dt@nodate
-\else
-\DeclareRobustCommand*{\today}{\formatdate{\day}{\month}{\year}}
-\fi
-% \end{macrocode}
-%Check to see if babel package has redefined |\today|.
-% \begin{macrocode}
-\if@dt@nodate
-\else
-\@ifundefined{dateenglish}{}{\let\dateenglish\longdate}
-\@ifundefined{dateaustrian}{}{\input{dt-austrian.def}}
-\@ifundefined{datebahasa}{}{\input{dt-bahasa.def}}
-\@ifundefined{datebasque}{}{\input{dt-basque.def}}
-\@ifundefined{datebreton}{}{\input{dt-breton.def}}
-\@ifundefined{datebulgarian}{}{\input{dt-bulgarian.def}}
-\@ifundefined{datecatalan}{}{\input{dt-catalan.def}}
-\@ifundefined{datecroatian}{}{\input{dt-croatian.def}}
-\@ifundefined{dateczech}{}{\input{dt-czech.def}}
-\@ifundefined{datedanish}{}{\input{dt-danish.def}}
-\@ifundefined{datedutch}{}{\input{dt-dutch.def}}
-\@ifundefined{dateesperanto}{}{\input{dt-esperanto.def}}
-\@ifundefined{dateestonian}{}{\input{dt-estonian.def}}
-\@ifundefined{datefinnish}{}{\input{dt-finnish.def}}
-\@ifundefined{datefrench}{}{\input{dt-french.def}}
-\@ifundefined{dategalician}{}{\input{dt-galician.def}}
-\@ifundefined{dategerman}{}{\input{dt-german.def}}
-\@ifundefined{dategreek}{}{\input{dt-greek.def}}
-\@ifundefined{datehebrew}{}{\input{dt-hebrew.def}}
-\@ifundefined{dateicelandic}{}{\input{dt-icelandic.def}}
-\@ifundefined{dateirish}{}{\input{dt-irish.def}}
-\@ifundefined{dateitalian}{}{\input{dt-italian.def}}
-\@ifundefined{datelatin}{}{\input{dt-latin.def}}
-\@ifundefined{datelsorbian}{}{\input{dt-lsorbian.def}}
-\@ifundefined{datemagyar}{}{\input{dt-magyar.def}}
-\@ifundefined{datenaustrian}{}{\input{dt-naustrian.def}}
-\@ifundefined{datengerman}{}{\input{dt-ngerman.def}}
-\@ifundefined{datenorsk}{}{\input{dt-norsk.def}}
-\@ifundefined{datepolish}{}{\input{dt-polish.def}}
-\@ifundefined{dateportuges}{}{\input{dt-portuges.def}}
-\@ifundefined{dateromanian}{}{\input{dt-romanian.def}}
-\@ifundefined{daterussian}{}{\input{dt-russian.def}}
-\@ifundefined{datesamin}{}{\input{dt-samin.def}}
-\@ifundefined{datescottish}{}{\input{dt-scottish.def}}
-\@ifundefined{dateserbian}{}{\input{dt-serbian.def}}
-\@ifundefined{dateslovak}{}{\input{dt-slovak.def}}
-\@ifundefined{dateslovene}{}{\input{dt-slovene.def}}
-\@ifundefined{datespanish}{}{\input{dt-spanish.def}}
-\@ifundefined{dateswedish}{}{\input{dt-swedish.def}}
-\@ifundefined{dateturkish}{}{\input{dt-turkish.def}}
-\@ifundefined{dateukraineb}{}{\input{dt-ukraineb.def}}
-\@ifundefined{dateusorbian}{}{\input{dt-usorbian.def}}
-\@ifundefined{datewelsh}{}{\input{dt-welsh.def}}
-\fi
-% \end{macrocode}
-% Define |\newdateformat| which defines a declaration that redefines |\formatdate| so that
-% it uses |\dateformat|. |\dateformat| takes four arguments, the first defines the format
-% the last three arguments are the three arguments that effectively get passed to |\formatdate|.
-% |\dateformat| sets |\@day|, |\@month| and |\@year|. |\c@DAY|, |\c@MONTH| and |\c@YEAR|
-% are set as synonims for |\@day|, |\@month| and |\@year|, to that the uses can use the counters
-% |DAY|, |MONTH| and |YEAR| as part of the format.
-% \begin{macrocode}
-\if@dt@nodate
-\typeout{datetime package message : option "nodate" used, so not defining \protect\newdateformat}
-\else
-
-\providecommand\THEDAY{\the\@day}
-\providecommand\THEMONTH{\the\@month}
-\providecommand\THEYEAR{\the\@year}
-\let\c@DAY=\@day
-\let\c@MONTH=\@month
-\let\c@YEAR=\@year
-
-\providecommand{\dateformat}[4]{\@day=#2\relax\@month=#3\relax\@year=#4\relax#1}
-
-\providecommand{\newdateformat}[2]{%
-\@ifundefined{#1}{\expandafter\DeclareRobustCommand\csname#1\endcsname{\renewcommand{\formatdate}{\dateformat{#2}}}}{%
-\PackageError{datetime}{Can't create new date format, command \textbackslash#1 already defined}{You will need to
-give you new date format a different name}}}
-\fi
-
-% \end{macrocode}
-% \subsubsection{Time Macros}
-% Define a command to create a new time format, similar to the new date format.
-% \begin{macrocode}
-\newcount\c@HOUR
-\newcount\c@HOURXII
-\newcount\c@MINUTE
-\newcount\c@TOHOUR
-\newcount\c@TOMINUTE
-\def\THEHOUR{\the\c@HOUR}
-\def\THEHOURXII{\the\c@HOURXII}
-\def\THEMINUTE{\the\c@MINUTE}
-\def\THETOHOUR{\the\c@TOHOUR}
-\def\THETOMINUTE{\the\c@TOMINUTE}
-
-\providecommand{\newtimeformat}[2]{%
-\@ifundefined{#1}{%
-\expandafter\def\csname#1\endcsname{%
-\c@HOUR=\time%
-\divide\c@HOUR by 60\relax
-\c@HOURXII=\c@HOUR
-\ifnum\c@HOURXII>12
-\advance\c@HOURXII by -12\relax
-\fi
-\c@MINUTE=\time%
-\@modulo{\c@MINUTE}{60}%
-\c@TOHOUR=\c@HOURXII
-\advance\c@TOHOUR by 1\relax
-\@modulo{\c@TOHOUR}{12}%
-\c@TOMINUTE=\c@MINUTE
-\advance\c@TOMINUTE by -60\relax
-\multiply\c@TOMINUTE by -1\relax
-#2\relax
-}}{%
-\PackageError{datetime}{Command \textbackslash#1 already defined}{%
-You can't create a new time format called "#1" as the command \textbackslash#1 already exists}}}
-% \end{macrocode}
-% Define commands to print the current time.
-% \begin{macrocode}
-\newtimeformat{xxivtime}{\twodigit\THEHOUR\timeseparator\twodigit\THEMINUTE}
-
-\newtimeformat{ampmtime}{\THEHOURXII\timeseparator\twodigit\THEMINUTE\ifthenelse{\value{HOUR}<12}{\amname}{\ifthenelse{\time=720}{ \noon}{\pmname}}}
-
-\newtimeformat{oclock}{\ifthenelse{\time=0 \or \time=720}{%
-% Midnight or Midday
-\ifthenelse{\time=0}{\midnight}{\noon}}{%
-% Neither Midnight nor Midday
-% Do minutes first
-\ifthenelse{\value{MINUTE}=0}{%
-% Don't print any minutes, just do the hour and \oclockstring
-\Numberstring{HOUR} \oclockstring}{%
-\ifthenelse{\value{MINUTE}=15}{%
-\quarterpast\ \Numberstring{HOUR}}{%
-\ifthenelse{\value{MINUTE}=30}{%
-\halfpast\ \Numberstring{HOUR}}{%
-\ifthenelse{\value{MINUTE}=45}{%
-\quarterto\ \Numberstring{TOHOUR}}{%
-\ifthenelse{\value{MINUTE}<30}{%
-\Numberstring{MINUTE}\ \ifthenelse{\value{MINUTE}=1}{minute}{minutes} past \Numberstring{HOURXII}}{%
-\Numberstring{TOMINUTE}\ \ifthenelse{\value{TOMINUTE}=1}{minute}{minutes} to \Numberstring{TOHOUR}}}}}}\
-% Now say whether it is morning or afternoon
-\ifthenelse{\value{HOUR}<12}{%
-% Morning
-\amstring}{%
-% Afternoon
-\pmstring}}}
-
-\providecommand{\amname}{am}
-\providecommand{\pmname}{pm}
-\providecommand{\amorpmname}{\ifthenelse{\value{HOUR}>12}{\pmname}{\amname}}
-\providecommand{\amstring}{in the morning}
-\providecommand{\pmstring}{in the afternoon}
-\providecommand{\amorpmstring}{\ifthenelse{\value{HOUR}>12}{\pmstring}{\amstring}}
-\providecommand{\halfpast}{Half past}
-\providecommand{\quarterpast}{Quarter past}
-\providecommand{\quarterto}{Quarter to}
-\providecommand{\noon}{Noon}
-\providecommand{\midnight}{Midnight}
-\providecommand{\oclockstring}{O'Clock}
-
-% \end{macrocode}
-% Finally create command that will typeset the date in PDF format
-% e.g. 20040501215500
-% \begin{macrocode}
-\newcount\pdftimectr
-\newcount\pdfdatectr
-
-\pdftimectr=0\relax
-\@dtctr=\time%
-\divide\@dtctr by 60\relax
-\multiply\@dtctr by 10000\relax
-\pdftimectr=\@dtctr
-%
-\@dtctr=\time%
-\@modulo{\@dtctr}{60}%
-\multiply\@dtctr by 100\relax
-\advance\pdftimectr by \@dtctr
-%
-\pdfdatectr=\day
-\@dtctr=\month
-\multiply\@dtctr by 100\relax
-\advance\pdfdatectr by \@dtctr
-\@dtctr=\year
-\multiply\@dtctr by 10000\relax
-\advance\pdfdatectr by \@dtctr
-%
-\ifnum\pdftimectr<100000
-\edef\pdfdate{\the\pdfdatectr0\the\pdftimectr}
-\else
-\edef\pdfdate{\the\pdfdatectr\the\pdftimectr}
-\fi
-% \end{macrocode}
-% \begin{macrocode}
-%</datetime.sty>
-% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*datetime.perl>
% \end{macrocode}
+%\fi
% \begin{macrocode}
# File : datetime.perl
# Author : Nicola Talbot
@@ -4709,12 +5549,18 @@ sub do_cmd_THEHOURXII{
1;
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</datetime.perl>
% \end{macrocode}
+%\fi
+%\iffalse
% \begin{macrocode}
%<*dt-sampl.tex>
% \end{macrocode}
+%\fi
+%\subsection{Sample Document}
+% \begin{macrocode}
\documentclass[a4paper]{article}
\usepackage{ifpdf}
@@ -4734,6 +5580,7 @@ sub do_cmd_THEHOURXII{
\newdateformat{mydate}{\ifshowdow \dayofweekname{\THEDAY}{\THEMONTH}{\THEYEAR} \fi
\THEDAY\ \monthname[\THEMONTH], \THEYEAR}
\newdateformat{yyyymmdd}{\THEYEAR\twodigit{\THEMONTH}\twodigit{\THEDAY}}
+\newdateformat{ukvardate}{\THEDAY\ \monthname[\THEMONTH]\ \THEYEAR}
\newtimeformat{dottime}{\twodigit{\THEHOUR}.\twodigit{\THEMINUTE}}
\newtimeformat{dashtime12}{\THEHOURXII-\twodigit{\THEMINUTE}}
@@ -4792,6 +5639,7 @@ oclock & \settimeformat{oclock}\currenttime
\begin{tabular}{ll}
\verb|\dashdate| & \dashdate\today\\
\verb|\usvardate| & \usvardate\today\\
+\verb|\ukvardate| & \ukvardate\today\\
\verb|\mydate| & \mydate\today\\
\verb|\yyyymmdd| & \yyyymmdd\today\\
\verb|\dashdate| & \dashdate\formatdate{8}{3}{2000}\\
@@ -4810,8 +5658,11 @@ hhmm & \settimeformat{hhmm}\currenttime
\end{tabular}
\end{document}
+% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</dt-sampl.tex>
% \end{macrocode}
+%\fi
%\Finale
\endinput