From 7f549680dc21a5a0b6c80ce7b1252b232d8535ff Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 8 Dec 2006 00:12:18 +0000 Subject: datetime update (7dec06) git-svn-id: svn://tug.org/texlive/trunk@2623 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/latex/datetime/datetime.dtx | 4677 ++++++++++++-------- .../texmf-dist/source/latex/datetime/datetime.ins | 8 +- 2 files changed, 2768 insertions(+), 1917 deletions(-) (limited to 'Master/texmf-dist/source/latex/datetime') 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,1003 +652,917 @@ % %\StopEventually{} %\section{The Code} +%\iffalse % \begin{macrocode} -%<*dt-austrian.def> +%<*datetime.sty> % \end{macrocode} -%\section{Compatibility with Babel} -%Austrian +%\fi +%\subsection{datetime.sty} +% This section documents the code for \texttt{datetime.sty} % \begin{macrocode} -\ProvidesFile{dt-austrian.def}[2004/10/31] - -\providecommand{\monthnameaustrian}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or J\"anner% -\or Februar% -\or M\"arz% -\or April% -\or Mai% -\or Juni% -\or Juli% -\or August% -\or September% -\or Oktober% -\or November% -\or Dezember% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (janvier) to 12 (decembre)}% -\fi} - -\DeclareRobustCommand*\dateaustrian{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day.~\monthnameaustrian[\@month]\space\number\@year}} +\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} -%<*dt-bahasa.def> +\newif\if@dt@nodate +\@dt@nodatefalse % \end{macrocode} -%Bahasa +% Define the character used to separate the numbers in the formats defined by +% |\ddmmyyyy| etc % \begin{macrocode} -\ProvidesFile{dt-bahasa.def}[2004/10/31] - -\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)}% -\or Januari% -\or Pebruari% -\or Maret% -\or April% -\or Mei% -\or Juni% -\or Juli% -\or Agustus% -\or September% -\or Oktober% -\or Nopember% -\or Desember% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (Januari) to 12 (Desember)}% -\fi} - -\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)}% -\or Januari% -\or Pebruari% -\or Maret% -\or April% -\or Mei% -\or Juni% -\or Juli% -\or Agustus% -\or September% -\or Oktober% -\or Nopember% -\or Desember% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (Januari) to 12 (Desember)}% -\fi} - -\DeclareRobustCommand*\datebahasa{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day}~\monthnamebahasa[\@month]\space \number\@year}} +\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} -%<*dt-basque.def> +\newcommand{\ordinaldateenglish}[1]{\ordinalnum{#1}} % \end{macrocode} -%Basque +% Welsh version: % \begin{macrocode} -\ProvidesFile{dt-basque.def}[2004/10/31] - -\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)}% -\or urtarrilaren% -\or otsailaren% -\or martxoaren% -\or apirilaren% -\or maiatzaren% -\or ekainaren% -\or uztailaren% -\or abuztuaren% -\or irailaren% -\or urriaren% -\or azaroaren% -\or abenduaren% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (urtarrilaren) to 12 (abenduaren)}% -\fi} - -\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)}% -\or urtarrilaren% -\or otsailaren% -\or martxoaren% -\or apirilaren% -\or maiatzaren% -\or ekainaren% -\or uztailaren% -\or abuztuaren% -\or irailaren% -\or urriaren% -\or azaroaren% -\or abenduaren% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (urtarrilaren) to 12 (abenduaren)}% -\fi} - -\DeclareRobustCommand*\datebasque{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@year.eko\space\monthnamebasque[\@month]~\number\@day}} +\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} -%<*dt-breton.def> +\newcommand{\ordinaldatefrench}[1]{% +#1\ifnum#1=1\ier\fi} % \end{macrocode} -%Breton +% Let \verb|\ordinaldate| be language dependent. If +% |\ordinaldate|\meta{language} is not defined, then just display +% the number. % \begin{macrocode} -\ProvidesFile{dt-breton.def}[2004/10/31] - -\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)}% -\or Genver% -\or C'hwevrer% -\or Meurzh% -\or Ebrel% -\or Mae% -\or Mezheven% -\or Gouere% -\or Eost% -\or Gwengolo% -\or Here% -\or Du% -\or Kerzu% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (Genver) to 12 (Kerzu)}% -\fi} - -\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)}% -\or Genver% -\or C'hwevrer% -\or Meurzh% -\or Ebrel% -\or Mae% -\or Mezheven% -\or Gouere% -\or Eost% -\or Gwengolo% -\or Here% -\or Du% -\or Kerzu% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (Genver) to 12 (Kerzu)}% +\newcommand{\ordinaldate}[1]{% +\if@dt@multilingual +\@ifundefined{ordinaldate\languagename}{#1}{% +\csname ordinaldate\languagename\endcsname{#1}} +\else +\ordinalnum{#1}% \fi} - -\DeclareRobustCommand*\datebreton{% -\renewcommand{\formatdate}[3]{% +% \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 -\ifnum\@day=1\relax 1\/\textsuperscript{a\~n}\else\number\@day\fi\space -a\space viz\space\monthnamebreton[\@month]\space\number\@year -}} +\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} -%<*dt-bulgarian.def> +\let\twodigit\two@digits % \end{macrocode} -%Bulgarian +% Day/month/year format. (Day and month displayed as two digits, +% year displayed as is.) % \begin{macrocode} -\ProvidesFile{dt-bulgarian.def}[2004/10/31] - -\providecommand{\monthnamebulgarian}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\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 - \cyra\cyrp\cyrr\cyri\cyrl\or - \cyrm\cyra\cyrishrt\or - \cyryu\cyrn\cyri\or - \cyryu\cyrl\cyri\or - \cyra\cyrv\cyrg\cyru\cyrs\cyrt\or - \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrv\cyrr\cyri\or - \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}% -\fi} - -\providecommand{\shortmonthnamebulgarian}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\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 - \cyra\cyrp\cyrr\cyri\cyrl\or - \cyrm\cyra\cyrishrt\or - \cyryu\cyrn\cyri\or - \cyryu\cyrl\cyri\or - \cyra\cyrv\cyrg\cyru\cyrs\cyrt\or - \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrv\cyrr\cyri\or - \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}% -\fi} - -\DeclareRobustCommand*\datebulgarian{% -\renewcommand{\formatdate}[3]{% +\DeclareRobustCommand*{\ddmmyyyydate}{% +\renewcommand*{\formatdate}[3]{% \@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day~\monthnamebulgarian[\@month]\ \number\@year~\cyrg.}} +\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} -%<*dt-catalan.def> +\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} -%Catalan +% Day/month/year format. (Day and month displayed as is, year +% abbreviated to two digits.) % \begin{macrocode} -\ProvidesFile{dt-catalan.def}[2004/10/31] - -\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)}% -\or de gener% -\or de febrer% -\or de mar\c{c}% -\or d'abril% -\or de maig% -\or de juny% -\or de juliol% -\or d'agost% -\or de setembre% -\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)}% -\fi} - -\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)}% -\or de gener% -\or de febrer% -\or de mar\c{c}% -\or d'abril% -\or de maig% -\or de juny% -\or de juliol% -\or d'agost% -\or de setembre% -\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)}% -\fi} - -\DeclareRobustCommand*\datecatalan{% -\renewcommand{\formatdate}[3]{% +\DeclareRobustCommand*{\dmyydate}{\renewcommand*{\formatdate}[3]{% \@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day~\monthnamecatalan[\@month]\ de~\number\@year -}} +\@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} -%<*dt-croatian.def> +\DeclareRobustCommand*{\usdate}{% +\renewcommand*{\formatdate}[3]{% +\@day=##1\relax\@month=##2\relax\@year=##3\relax +\monthname[\@month]\ \the\@day, \the\@year}} % \end{macrocode} -%Croatian +% Month/day/year format. (Month and day displayed as two digits, +% year displayed as is.) % \begin{macrocode} -\ProvidesFile{dt-croatian.def}[2004/10/31] - -\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)}% -\or sije\v{c}nja% -\or velja\v{c}e% -\or o\v{z}ujka% -\or travnja% -\or svibnja% -\or lipnja% -\or srpnja% -\or kolovoza% -\or rujna% -\or listopada% -\or studenog% -\or prosinca% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (sijecnja) to 12 (prosinca)}% -\fi} - -\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)}% -\or sije\v{c}nja% -\or velja\v{c}e% -\or o\v{z}ujka% -\or travnja% -\or svibnja% -\or lipnja% -\or srpnja% -\or kolovoza% -\or rujna% -\or listopada% -\or studenog% -\or prosinca% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (sijecnja) to 12 (prosinca)}% -\fi} - -\DeclareRobustCommand*\datecroatian{% -\renewcommand{\formatdate}[3]{% +\DeclareRobustCommand*{\mmddyyyydate}{% +\renewcommand*{\formatdate}[3]{% \@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day.~\monthnamecroatian[\@month]\space \number\@year.}} +\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} -%<*dt-czech.def> +\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} -%Czech +% Month/day/year format. (Month and day displayed as is, year +% abbreviated to two digits.) % \begin{macrocode} -\ProvidesFile{dt-czech.def}[2004/10/31] - -\providecommand{\monthnameczech}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or ledna% -\or \'unora% -\or b\v{r}ezna% -\or dubna% -\or kv\v{e}tna% -\or \v{c}ervna% -\or \v{c}ervence% -\or srpna% -\or z\'a\v{r}\'{\i}% -\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}% -\fi} - -\providecommand{\shortmonthnameczech}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or ledna% -\or \'unora% -\or b\v{r}ezna% -\or dubna% -\or kv\v{e}tna% -\or \v{c}ervna% -\or \v{c}ervence% -\or srpna% -\or z\'a\v{r}\'{\i}% -\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}% -\fi} - -\DeclareRobustCommand*\dateczech{% -\renewcommand{\formatdate}[3]{% +\DeclareRobustCommand*{\mdyydate}{\renewcommand*{\formatdate}[3]{% \@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day.~\monthnameczech[\@month]\space \number\@year}} +\@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} -%<*dt-danish.def> +\newcommand{\getdateyear}[1]{% +\@ifundefined{date@#1@y}{% +\PackageError{datetime}{Date `#1' not defined}{}}{% +\csname date@#1@y\endcsname}} % \end{macrocode} -%Danish +% Display month from previously stored date % \begin{macrocode} -\ProvidesFile{dt-danish.def}[2004/10/31] - -\providecommand{\monthnamedanish}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or januar% -\or februar% -\or marts% -\or april% -\or maj% -\or juni% -\or juli% -\or august% -\or september% -\or oktober% -\or november% -\or december% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\fi} - -\DeclareRobustCommand*\datedanish{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day.~\monthnamedanish[\@month]\space \number\@year}} +\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} -%<*dt-dutch.def> +\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} -%Dutch +% (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} -\ProvidesFile{dt-dutch.def}[2004/10/31] - -\providecommand{\monthnamedutch}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or januari% -\or februari% -\or maart% -\or april% -\or mei% -\or juni% -\or juli% -\or augustus% -\or september% -\or oktober% -\or november% -\or december% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\fi} - -\DeclareRobustCommand*\datedutch{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day~\monthnamedutch[\@month]\space \number\@year}} +\DeclareRobustCommand*{\currenttime}{\xxivtime} % \end{macrocode} +% Define separator for numerical times: % \begin{macrocode} -% +\newcommand{\timeseparator}{:} % \end{macrocode} +% Switch to specified time format: % \begin{macrocode} -%<*dt-esperanto.def> +\providecommand{\settimeformat}[1]{% +\DeclareRobustCommand*\currenttime{\csname#1\endcsname}} % \end{macrocode} -%Esperanto +% Set defaults: % \begin{macrocode} -\ProvidesFile{dt-esperanto.def}[2004/10/31] - -\providecommand{\monthnameesperanto}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or januaro% -\or februaro% -\or marto% -\or aprilo% -\or majo% -\or junio% -\or julio% -\or a\u{u}gusto% -\or septembro% -\or oktobro% -\or novembro% -\or decembro% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\fi} - -\DeclareRobustCommand*\dateesperanto{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day{--a}~de~\monthnameesperanto[\@month],\space \number\@year}} +\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} -%<*dt-estonian.def> -% \end{macrocode} -%Estonian +\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} -\ProvidesFile{dt-estonian.def}[2004/10/31] - -\providecommand{\monthnameestonian}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or jaanuar% -\or veebruar% -\or m"arts% -\or aprill% -\or mai% -\or juuni% -\or juuli% -\or august% -\or september% -\or oktoober% -\or november% -\or detsember% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\fi} - -\DeclareRobustCommand*\dateestonian{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day.\space\monthnameestonian[\@month]\space \number\@year.\space a.}} +\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} -%<*dt-finnish.def> +\RequirePackage{ifthen} % \end{macrocode} -%Finnish +% \subsubsection{Date Macros} +% Define the macro that prints the month name. +% (Only define this command if @dt@nodate is false) % \begin{macrocode} -\ProvidesFile{dt-finnish.def}[2004/10/31] - -\providecommand{\monthnamefinnish}[1][\month]{% +\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 to 12}% -\or tammikuuta% -\or helmikuuta% -\or maaliskuuta% -\or huhtikuuta% -\or toukokuuta% -\or kes\"akuuta% -\or hein\"akuuta% -\or elokuuta% -\or syyskuuta% -\or lokakuuta% -\or marraskuuta% -\or joulukuuta% -\else \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 (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} - -\DeclareRobustCommand*\datefinnish{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day.~\monthnamefinnish[\@month]\space \number\@year}} % \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} -%<*dt-french.def> +\fi % \end{macrocode} -%French +% Define the macro that prints the abbreviated month name +% (Again, only do this if @dt@nodate is false) % \begin{macrocode} -\ProvidesFile{dt-french.def}[2004/10/31] - -\providecommand{\dayofweeknameidfrench}[1]{% -\ifcase#1\relax -\or dimanche% -\or lundi% -\or mardi% -\or mercredi% -\or jeudi% -\or vendredi% -\or samedi% -\fi} - - % is this correct? -\providecommand{\shortdayofweeknameidfrench}[1]{% -\ifcase#1\relax -\or dim% -\or lun% -\or mar% -\or mer% -\or jeu% -\or ven% -\or sam% -\fi} - -\providecommand{\monthnamefrench}[1][\month]{% +\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 (janvier) to 12 (decembre)}% -\or janvier% -\or f\'evrier% -\or mars% -\or avril% -\or mai% -\or juin% -\or juillet% -\or ao\^ut% -\or septembre% -\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)}% +\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} - -\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}} % \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} -%<*dt-galician.def> +\newif\ifleapyear % \end{macrocode} -%Galician +% Define temporary counter for arithmetic. % \begin{macrocode} -\ProvidesFile{dt-galician.def}[2004/10/31] - -\providecommand{\monthnamegalician}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or xaneiro% -\or febreiro% -\or marzo% -\or abril% -\or maio% -\or xu\~no% -\or xullo% -\or agosto% -\or setembro% -\or outubro% -\or novembro% -\or decembro% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\fi} - -\DeclareRobustCommand*\dategalician{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day~de\space\monthnamegalician[\@month]\space de~\number\@year}} +\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} -%<*dt-german.def> +\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} -%German +% Compute the day of year. Result will be stored in \verb|\dayofyear| +% Syntax: |\computedayofyear{|\meta{day}|}{|\meta{month}|}{|\meta{year}|}| % \begin{macrocode} -\ProvidesFile{dt-german.def}[2004/10/31] - -\providecommand{\monthnamegerman}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or Januar% -\or Februar% -\or M\"arz% -\or April% -\or Mai% -\or Juni% -\or Juli% -\or August% -\or September% -\or Oktober% -\or November% -\or Dezember% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 (janvier) to 12 (decembre)}% -\fi} +\newcount\dayofyear -\DeclareRobustCommand*\dategerman{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day.~\monthnamegerman[\@month]\space\number\@year}} -% \end{macrocode} -% \begin{macrocode} -% +\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} -%<*dt-greek.def> +\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} -%Greek +% Given the day of week index, print associated the English name. % \begin{macrocode} -\ProvidesFile{dt-greek.def}[2004/10/31] - -\providecommand{\monthnamegreek}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or Ianouar'iou% -\or Febrouar'iou% -\or Mart'iou% -\or April'iou% -\or Ma'"iou% -\or Ioun'iou% -\or Ioul'iou% -\or Augo'ustou% -\or Septembr'iou% -\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}% +\providecommand{\dayofweeknameidenglish}[1]{% +\ifcase#1\relax +\or Sunday% +\or Monday% +\or Tuesday% +\or Wednesday% +\or Thursday% +\or Friday% +\or Saturday% \fi} - -\DeclareRobustCommand*\dategreek{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day\space\monthnamegreek[\@month]\space\number\@year}} % \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} -%<*dt-hebrew.def> +\providecommand{\dayofweekname}[3]{% +\computedayofweek{#1}{#2}{#3}% +\dayofweeknameid{\dayofweek}% +} % \end{macrocode} -%Hebrew +% Print today's day of week name. % \begin{macrocode} -\ProvidesFile{dt-hebrew.def}[2004/10/31] - -\DeclareRobustCommand*\datehebrew{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\hebdate\@day\@month\@year}} +\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} -%<*dt-icelandic.def> +\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} -%Icelandic +% Today's week day name, abbreviated: % \begin{macrocode} -\ProvidesFile{dt-icelandic.def}[2004/10/31] - -\providecommand{\monthnameicelandic}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or janúar% -\or febrúar% -\or mars% -\or apríl% -\or maí% -\or júní% -\or júlí% -\or ágúst% -\or september% -\or október% -\or nóvember% -\or desembe% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\fi} - -\DeclareRobustCommand*\dateicelandic{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day.~\monthnameicelandic[\@month]\space\number\@year}} +\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} -%<*dt-irish.def> +\if@dt@nodate +\else +\DeclareRobustCommand*{\today}{\formatdate{\day}{\month}{\year}} +\fi % \end{macrocode} -%Irish +%Check to see if babel package has redefined |\today|. % \begin{macrocode} -\ProvidesFile{dt-irish.def}[2004/10/31] - -\providecommand{\monthnameirish}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or Ean\'air% -\or Feabhra% -\or M\'arta% -\or Aibre\'an% -\or Bealtaine% -\or Meitheamh% -\or I\'uil% -\or L\'unasa% -\or Me\'an F\'omhair% -\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}% -\fi} - -\DeclareRobustCommand*\dateirish{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day\space\monthnameirish[\@month]\space\number\@year}} +\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} -%<*dt-italian.def> +\providecommand\THEDAY{\the\@day} +\providecommand\THEMONTH{\the\@month} +\providecommand\THEYEAR{\the\@year} % \end{macrocode} -%Italian +% Simulate a \LaTeX\ counter. % \begin{macrocode} -\ProvidesFile{dt-italian.def}[2004/10/31] - -\providecommand{\monthnameitalian}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or gennaio% -\or febbraio% -\or marzo% -\or aprile% -\or maggio% -\or giugno% -\or luglio% -\or agosto% -\or settembre% -\or ottobre% -\or novembre% -\or dicembre% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\fi} - -\DeclareRobustCommand*\dateitalian{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day\space\monthnameitalian[\@month]\space\number\@year}} +\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} -%<*dt-latin.def> +\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} -%Latin +% End of |\if@no@date| else part: % \begin{macrocode} -\ProvidesFile{dt-latin.def}[2004/10/31] - -\providecommand{\monthnamelatin}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or Ianuarii% -\or Februarii% -\or Martii% -\or Aprilis% -\or Maii% -\or Iunii% -\or Iulii% -\or Augusti% -\or Septembris% -\or Octobris% -\or Novembris% -\or Decembris% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\fi} - -\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}}}} +\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} -%<*dt-lsorbian.def> +\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} -%LSorbian +% Provide a means to define a new time format. % \begin{macrocode} -\ProvidesFile{dt-lsorbian.def}[2004/10/31] - -\providecommand{\monthnamenewlsorbian}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or januara% -\or februara% -\or m\v erca% -\or apryla% -\or maja% -\or junija% -\or julija% -\or awgusta% -\or septembra% -\or oktobra% -\or nowembra% -\or decembra% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\fi} - -\providecommand{\monthnameoldlsorbian}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\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% -\or jat\v sownika% -\or ro\v zownika% -\or sma\v znika% -\or pra\v znika% -\or \v znje\'nca% -\or po\v znje\'nca% -\or winowca% -\or nazymnika% -\or godownika% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\fi} - -\let\monthnamelsorbian=\monthnamenewlsorbian - -\DeclareRobustCommand*\newdatelsorbian{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day.~\monthnamenewlsorbian[\@month]\space\number\@year}} - -\DeclareRobustCommand*\olddatelsorbian{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day.~\monthnameoldlsorbian[\@month]\space\number\@year}} - -\let\datelsorbian\newdatelsorbian +\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} -%<*dt-magyar.def> +\newtimeformat{ampmtime}{% +\THEHOURXII\timeseparator\twodigit\THEMINUTE +\ifthenelse{\value{HOUR}<12}{\amname}{% +\ifthenelse{\time=720}{ \noon}{\pmname}}} % \end{macrocode} -%Magyar +% Textual time: % \begin{macrocode} -\ProvidesFile{dt-magyar.def}[2004/10/31] - -\providecommand{\monthnamemagyar}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or janu\'ar% -\or febru\'ar% -\or m\'arcius% -\or \'aprilis% -\or m\'ajus% -\or j\'unius% -\or j\'ulius% -\or augusztus% -\or szeptember% -\or okt\'ober% -\or november% -\or december% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\fi} - -\DeclareRobustCommand*\datemagyar{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@year.~\monthnamemagyar[\@month]\space\number\@day.}} +\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} -%<*dt-naustrian.def> +\ifthenelse{\value{MINUTE}=0}{% % \end{macrocode} -%NAustrian +% On the hour: don't print any minutes, just do the hour and +% |\oclockstring| % \begin{macrocode} -\ProvidesFile{dt-naustrian.def}[2004/10/31] - -\providecommand{\monthnamenaustrian}[1][\month]{% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-austrian.def> +% \end{macrocode} +%\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% @@ -1655,1318 +1575,2238 @@ 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 (janvier) to 12 (decembre)}% \fi} - -\DeclareRobustCommand*\datenaustrian{% +% \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.~\monthnamenaustrian[\@month]\space\number\@year}} +\number\@day.~\monthnameaustrian[\@month]\space\number\@year}} % \end{macrocode} +%\iffalse % \begin{macrocode} -% +% % \end{macrocode} +%\fi +%\iffalse % \begin{macrocode} -%<*dt-ngerman.def> +%<*dt-bahasa.def> % \end{macrocode} -%NGerman +%\fi +%\subsubsection{Bahasa} +% Identify file % \begin{macrocode} -\ProvidesFile{dt-ngerman.def}[2004/10/31] - -\providecommand{\monthnamengerman}[1][\month]{% +\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 to 12}% -\or Januar% -\or Februar% -\or M\"arz% +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 (Januari) to 12 (Desember)}% +\or Januari% +\or Pebruari% +\or Maret% \or April% -\or Mai% +\or Mei% \or Juni% \or Juli% -\or August% +\or Agustus% \or September% \or Oktober% -\or November% -\or Dezember% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% +\or Nopember% +\or Desember% +\else +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 (Januari) to 12 (Desember)}% \fi} - -\DeclareRobustCommand*\datengerman{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day.~\monthnamengerman[\@month]\space\number\@year}} -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% \begin{macrocode} -%<*dt-norsk.def> % \end{macrocode} -%Norsk +% Define abbreviated month names. This currently does the full +% name, because I don't know the abbreviated versions. % \begin{macrocode} -\ProvidesFile{dt-norsk.def}[2004/10/31] - -\providecommand{\monthnamenorsk}[1][\month]{% +\providecommand{\shortmonthnamebahasa}[1][\month]{% \@orgargctr=#1\relax \ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or januar% -\or februar% -\or mars% -\or april% -\or mai% -\or juni% -\or juli% -\or august% -\or september% -\or oktober% -\or november% -\or desember% -\else \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 (Januari) to 12 (Desember)}% +\or Januari% +\or Pebruari% +\or Maret% +\or April% +\or Mei% +\or Juni% +\or Juli% +\or Agustus% +\or September% +\or Oktober% +\or Nopember% +\or Desember% +\else +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 (Januari) to 12 (Desember)}% \fi} - -\DeclareRobustCommand*\datenorsk{% +% \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.~\monthnamenorsk[\@month]\space\number\@year}} +\number\@day}~\monthnamebahasa[\@month]\space \number\@year}} % \end{macrocode} +%\iffalse % \begin{macrocode} -% +% % \end{macrocode} +%\fi +%\iffalse % \begin{macrocode} -%<*dt-polish.def> +%<*dt-basque.def> % \end{macrocode} -%Polish +%\fi +%\subsubsection{Basque} +% Identify file % \begin{macrocode} -\ProvidesFile{dt-polish.def}[2004/10/31] - -\providecommand{\monthnamepolish}[1][\month]{% +\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 to 12}% -\or stycznia% -\or lutego% -\or marca% -\or kwietnia% -\or maja% -\or czerwca% -\or lipca% -\or sierpnia% -\or wrze\'snia% -\or pa\'zdziernika% -\or listopada% -\or grudnia% -\else \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 (urtarrilaren) to 12 (abenduaren)}% +\or urtarrilaren% +\or otsailaren% +\or martxoaren% +\or apirilaren% +\or maiatzaren% +\or ekainaren% +\or uztailaren% +\or abuztuaren% +\or irailaren% +\or urriaren% +\or azaroaren% +\or abenduaren% +\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 (urtarrilaren) to 12 (abenduaren)}% \fi} - -\DeclareRobustCommand*\datepolish{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day~\monthnamepolish[\@month]\space\number\@year}} -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% \begin{macrocode} -%<*dt-portuges.def> % \end{macrocode} -%Portuges +% Define abbreviated month names. This currently does the full +% name, because I don't know the abbreviated versions. % \begin{macrocode} -\ProvidesFile{dt-portuges.def}[2004/10/31] - -\providecommand{\dayofweeknameidportuges}[1]{% -\ifcase#1\relax -\or domingo% -\or segunda-feira% -\or ter\c{c}a-feira% -\or quarta-feira% -\or quinta-feira% -\or sexta-feira% -\or sabado% -\fi} - -\providecommand{\monthnameportuges}[1][\month]{% +\providecommand{\shortmonthnamebasque}[1][\month]{% \@orgargctr=#1\relax \ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or Janeiro% -\or Fevereiro% -\or Mar\c{c}o% -\or Abril% -\or Maio% -\or Junho% -\or Julho% -\or Agosto% -\or Setembro% -\or Outubro% -\or Novembro% -\or Dezembro% -\else \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 (urtarrilaren) to 12 (abenduaren)}% +\or urtarrilaren% +\or otsailaren% +\or martxoaren% +\or apirilaren% +\or maiatzaren% +\or ekainaren% +\or uztailaren% +\or abuztuaren% +\or irailaren% +\or urriaren% +\or azaroaren% +\or abenduaren% +\else +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 (urtarrilaren) to 12 (abenduaren)}% \fi} - -\DeclareRobustCommand*\dateportuges{% +% \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\@day\space de\space\monthnameportuges[\@month]\space de\space\number\@year}} +\number\@year.eko\space\monthnamebasque[\@month]~\number\@day}} % \end{macrocode} +%\iffalse % \begin{macrocode} -% +% % \end{macrocode} +%\fi +%\iffalse % \begin{macrocode} -%<*dt-romanian.def> +%<*dt-breton.def> +% \end{macrocode} +%\fi +%\subsubsection{Breton} +% Identify file +% \begin{macrocode} +\ProvidesFile{dt-breton.def}[2004/10/31] % \end{macrocode} -%Romanian +% Define month names. % \begin{macrocode} -\ProvidesFile{dt-romanian.def}[2004/10/31] - -\providecommand{\monthnameromanian}[1][\month]{% +\providecommand{\monthnamebreton}[1][\month]{% \@orgargctr=#1\relax \ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or ianuarie% -\or februarie% -\or martie% -\or aprilie% -\or mai% -\or iunie% -\or iulie% -\or august% -\or septembrie% -\or octombrie% -\or noiembrie% -\or decembrie% -\else \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 (Genver) to 12 (Kerzu)}% +\or Genver% +\or C'hwevrer% +\or Meurzh% +\or Ebrel% +\or Mae% +\or Mezheven% +\or Gouere% +\or Eost% +\or Gwengolo% +\or Here% +\or Du% +\or Kerzu% +\else +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 (Genver) to 12 (Kerzu)}% \fi} - -\DeclareRobustCommand*\dateromanian{% +% \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)}% +\or Genver% +\or C'hwevrer% +\or Meurzh% +\or Ebrel% +\or Mae% +\or Mezheven% +\or Gouere% +\or Eost% +\or Gwengolo% +\or Here% +\or Du% +\or 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 -\number\@day~\monthnameromanian[\@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} -% +% % \end{macrocode} +%\fi +%\iffalse % \begin{macrocode} -%<*dt-russian.def> +%<*dt-bulgarian.def> % \end{macrocode} -%Russian +%\fi +%\subsubsection{Bulgarian} +% Identify file % \begin{macrocode} -\ProvidesFile{dt-russian.def}[2004/10/31] - -\providecommand{\monthnamerussian}[1][\month]{% -\@orgargctr=#1\relax -\ifcase\@orgargctr -\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 - \cyra\cyrp\cyrr\cyre\cyrl\cyrya\or - \cyrm\cyra\cyrya\or - \cyri\cyryu\cyrn\cyrya\or - \cyri\cyryu\cyrl\cyrya\or - \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra\or - \cyrs\cyre\cyrn\cyrt\cyrya\cyrb\cyrr\cyrya\or - \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}% -\fi} - -\DeclareRobustCommand*\daterussian{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day~\monthnamerussian[\@month]\ \number\@year~\cyrg.}} -% \end{macrocode} -% \begin{macrocode} -% +\ProvidesFile{dt-bulgarian.def}[2004/10/31] % \end{macrocode} +% Define month names. % \begin{macrocode} -%<*dt-samin.def> +\providecommand{\monthnamebulgarian}[1][\month]{% +\@orgargctr=#1\relax +\ifcase\@orgargctr +\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 + \cyra\cyrp\cyrr\cyri\cyrl\or + \cyrm\cyra\cyrishrt\or + \cyryu\cyrn\cyri\or + \cyryu\cyrl\cyri\or + \cyra\cyrv\cyrg\cyru\cyrs\cyrt\or + \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrv\cyrr\cyri\or + \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}% +\fi} % \end{macrocode} -%Samin +% Define abbreviated month names. This currently does the full +% name, because I don't know the abbreviated versions. % \begin{macrocode} -\ProvidesFile{dt-samin.def}[2004/10/31] - -\providecommand{\monthnamesamin}[1][\month]{% +\providecommand{\shortmonthnamebulgarian}[1][\month]{% \@orgargctr=#1\relax \ifcase\@orgargctr -\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 - cuo\ng{}om\'anu\or - miessem\'anu\or - geassem\'anu\or - suoidnem\'anu\or - borgem\'anu\or - \v cak\v cam\'anu\or - 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}% +\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 + \cyra\cyrp\cyrr\cyri\cyrl\or + \cyrm\cyra\cyrishrt\or + \cyryu\cyrn\cyri\or + \cyryu\cyrl\cyri\or + \cyra\cyrv\cyrg\cyru\cyrs\cyrt\or + \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrv\cyrr\cyri\or + \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}% \fi} - -\DeclareRobustCommand*\datesamin{% +% \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 -\monthnamesamin[\@month]\space\number\@day.~b.\space \number\@year}} +\number\@day~\monthnamebulgarian[\@month]\ \number\@year~\cyrg.}} % \end{macrocode} +%\iffalse % \begin{macrocode} -% +% % \end{macrocode} +%\fi +%\iffalse % \begin{macrocode} -%<*dt-scottish.def> +%<*dt-catalan.def> % \end{macrocode} -%Scottish +%\fi +%\subsubsection{Catalan} +% Identify file % \begin{macrocode} -\ProvidesFile{dt-scottish.def}[2004/10/31] - -\providecommand{\monthnamescottish}[1][\month]{% +\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 to 12}% -\or am Faoilteach% -\or an Gearran% -\or am M\`art% -\or an Giblean% -\or an C\`eitean% -\or an t-\`Og mhios% -\or an t-Iuchar% -\or L\`unasdal% -\or an Sultuine% -\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}% +\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}% +\or d'abril% +\or de maig% +\or de juny% +\or de juliol% +\or d'agost% +\or de setembre% +\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)}% \fi} - -\DeclareRobustCommand*\datescottish{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day\space\monthnamescottish[\@month]\space \number\@year}} -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% \begin{macrocode} -%<*dt-serbian.def> % \end{macrocode} -%Serbian +% Define abbreviated month names. This currently does the full +% name, because I don't know the abbreviated versions. % \begin{macrocode} -\ProvidesFile{dt-serbian.def}[2004/10/31] - -\providecommand{\monthnameserbian}[1][\month]{% +\providecommand{\shortmonthnamecatalan}[1][\month]{% \@orgargctr=#1\relax \ifcase\@orgargctr -\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% -\or januar% -\or februar% -\or mart% -\or april% -\or maj% -\or juni% -\or juli% -\or avgust% -\or septembar% -\or oktobar% -\or novembar% -\or decembar% -\else \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 (de gener) to 12 (de desembre)}% +\or de gener% +\or de febrer% +\or de mar\c{c}% +\or d'abril% +\or de maig% +\or de juny% +\or de juliol% +\or d'agost% +\or de setembre% +\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)}% \fi} - -\DeclareRobustCommand*\dateserbian{% +% \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.~\monthnameserbian[\@month]\space \number\@year}} +\number\@day~\monthnamecatalan[\@month]\ de~\number\@year +}} % \end{macrocode} +%\iffalse % \begin{macrocode} -% +% % \end{macrocode} +%\fi +%\iffalse % \begin{macrocode} -%<*dt-slovak.def> +%<*dt-croatian.def> % \end{macrocode} -%Slovak +%\fi +%\subsubsection{Croatian} +% Identify file % \begin{macrocode} -\ProvidesFile{dt-slovak.def}[2004/10/31] - -\providecommand{\monthnameslovak}[1][\month]{% +\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 to 12}% -\or janu\'ara% -\or febru\'ara% -\or marca% -\or apr\'{\i}la% -\or m\'aja% -\or j\'una% -\or j\'ula% -\or augusta% -\or septembra% -\or okt\'obra% -\or novembra% -\or decembra% -\else \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 (sijecnja) to 12 (prosinca)}% +\or sije\v{c}nja% +\or velja\v{c}e% +\or o\v{z}ujka% +\or travnja% +\or svibnja% +\or lipnja% +\or srpnja% +\or kolovoza% +\or rujna% +\or listopada% +\or studenog% +\or prosinca% +\else +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 (sijecnja) to 12 (prosinca)}% \fi} - -\DeclareRobustCommand*\dateslovak{% +% \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)}% +\or sije\v{c}nja% +\or velja\v{c}e% +\or o\v{z}ujka% +\or travnja% +\or svibnja% +\or lipnja% +\or srpnja% +\or kolovoza% +\or rujna% +\or listopada% +\or studenog% +\or 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.~\monthnameslovak[\@month]\space \number\@year}} +\number\@day.~\monthnamecroatian[\@month]\space \number\@year.}} % \end{macrocode} +%\iffalse % \begin{macrocode} -% +% % \end{macrocode} +%\fi +%\iffalse % \begin{macrocode} -%<*dt-slovene.def> +%<*dt-czech.def> % \end{macrocode} -%Slovene +%\fi +%\subsubsection{Czech} +% Identify file % \begin{macrocode} -\ProvidesFile{dt-slovene.def}[2004/10/31] - -\providecommand{\monthnameslovene}[1][\month]{% +\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}% -\or januar% -\or februar% -\or marec% -\or april% -\or maj% -\or junij% -\or julij% -\or avgust% -\or september% -\or oktober% -\or november% -\or december% -\else \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% +\or dubna% +\or kv\v{e}tna% +\or \v{c}ervna% +\or \v{c}ervence% +\or srpna% +\or z\'a\v{r}\'{\i}% +\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}% \fi} - -\DeclareRobustCommand*\dateslovene{% +% \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}% +\or ledna% +\or \'unora% +\or b\v{r}ezna% +\or dubna% +\or kv\v{e}tna% +\or \v{c}ervna% +\or \v{c}ervence% +\or srpna% +\or z\'a\v{r}\'{\i}% +\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}% +\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.~\monthnameslovene[\@month]\space \number\@year}} +\number\@day.~\monthnameczech[\@month]\space \number\@year}} % \end{macrocode} +%\iffalse % \begin{macrocode} -% +% % \end{macrocode} +%\fi +%\iffalse % \begin{macrocode} -%<*dt-spanish.def> +%<*dt-danish.def> % \end{macrocode} -%Spanish +%\fi +%\subsubsection{Danish} +% Identify file % \begin{macrocode} -\ProvidesFile{dt-spanish.def}[2004/10/31] - -\providecommand{\dayofweeknameidspanish}[1]{% -\ifcase#1\relax -\or domingo% -\or lunes% -\or martes% -\or mi\'ercoles% -\or jueves% -\or viernes% -\or s\'abado% -\fi} - - % is this correct? -\providecommand{\shortdayofweeknameidspanish}[1]{% -\ifcase#1\relax -\or dom% -\or lun% -\or mar% -\or mi\'e% -\or jue% -\or vie% -\or s\'ab% -\fi} - -\providecommand{\monthnamespanish}[1][\month]{% +\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}% -\or enero% -\or febrero% -\or marzo% -\or abril% -\or mayo% -\or junio% -\or julio% -\or agosto% -\or septiembre% -\or octubre% -\or noviembre% -\or diciembre% -\else \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% +\or april% +\or maj% +\or juni% +\or juli% +\or august% +\or september% +\or oktober% +\or november% +\or december% +\else +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 to 12}% \fi} - -\DeclareRobustCommand*\datespanish{% +% \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~de \monthnamespanish[\@month]\ de~\number\@year}} +\number\@day.~\monthnamedanish[\@month]\space \number\@year}} % \end{macrocode} +%\iffalse % \begin{macrocode} -% +% % \end{macrocode} +%\fi +%\iffalse % \begin{macrocode} -%<*dt-swedish.def> +%<*dt-dutch.def> % \end{macrocode} -%Swedish +%\fi +%\subsubsection{Dutch} +% Identify file % \begin{macrocode} -\ProvidesFile{dt-swedish.def}[2004/10/31] - -\providecommand{\monthnameswedish}[1][\month]{% +\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 mars% +\or maart% \or april% -\or maj% +\or mei% \or juni% \or juli% -\or augusti% +\or augustus% \or september% \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} - -\DeclareRobustCommand*\dateswedish{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@day~\monthnameswedish[\@month]\space\number\@year}} - -\DeclareRobustCommand*\datesymd{% -\renewcommand{\formatdate}[3]{% -\@day=##1\relax\@month=##2\relax\@year=##3\relax -\number\@year-\two@digits\@month-\two@digits\@day} -} - -\DeclareRobustCommand*\datesdmy{% +% \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/\number\@month\space\number\@year} -} +\number\@day~\monthnamedutch[\@month]\space \number\@year}} % \end{macrocode} +%\iffalse % \begin{macrocode} -% +% % \end{macrocode} +%\fi +%\iffalse % \begin{macrocode} -%<*dt-turkish.def> +%<*dt-esperanto.def> % \end{macrocode} -%Turkish +%\fi +%\subsubsection{Esperanto} +% Identify file % \begin{macrocode} -\ProvidesFile{dt-turkish.def}[2004/10/31] - -\providecommand{\monthnameturkish}[1][\month]{% +\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}% -\or Ocak% -\or \c Subat% -\or Mart% -\or Nisan% -\or May\i{}s% -\or Haziran% -\or Temmuz% -\or A\u gustos% -\or Eyl\"ul% -\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}% +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 to 12}% +\or januaro% +\or februaro% +\or marto% +\or aprilo% +\or majo% +\or junio% +\or julio% +\or a\u{u}gusto% +\or septembro% +\or oktobro% +\or novembro% +\or decembro% +\else +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 to 12}% \fi} - -\DeclareRobustCommand*\dateturkish{% +% \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~\monthnameturkish[\@month]\space\number\@year}} +\number\@day{--a}~de~\monthnameesperanto[\@month],\space +\number\@year}} % \end{macrocode} +%\iffalse % \begin{macrocode} -% +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-estonian.def> % \end{macrocode} +%\fi +%\subsubsection{Estonian} +% Identify file % \begin{macrocode} -%<*dt-ukraineb.def> +\ProvidesFile{dt-estonian.def}[2004/10/31] % \end{macrocode} -%Ukraine +% Define month names. % \begin{macrocode} -\ProvidesFile{dt-ukraineb.def}[2004/10/31] - -\providecommand{\monthnameukraineb}[1][\month]{% +\providecommand{\monthnameestonian}[1][\month]{% \@orgargctr=#1\relax \ifcase\@orgargctr -\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 - \cyrk\cyrv\cyrii\cyrt\cyrn\cyrya\or - \cyrt\cyrr\cyra\cyrv\cyrn\cyrya\or - \cyrch\cyre\cyrr\cyrv\cyrn\cyrya\or - \cyrl\cyri\cyrp\cyrn\cyrya\or - \cyrs\cyre\cyrr\cyrp\cyrn\cyrya\or - \cyrv\cyre\cyrr\cyre\cyrs\cyrn\cyrya\or - \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}% +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 to 12}% +\or jaanuar% +\or veebruar% +\or m"arts% +\or aprill% +\or mai% +\or juuni% +\or juuli% +\or august% +\or september% +\or oktoober% +\or november% +\or detsember% +\else +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 to 12}% \fi} - -\DeclareRobustCommand*\dateukraineb{% +% \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~\monthnameukraineb[\@month]\space\number\@year~\cyrr.}} +\number\@day.\space\monthnameestonian[\@month]\space +\number\@year.\space a.}} % \end{macrocode} +%\iffalse % \begin{macrocode} -% +% % \end{macrocode} +%\fi +%\iffalse % \begin{macrocode} -%<*dt-usorbian.def> +%<*dt-finnish.def> % \end{macrocode} -%USorbian +%\fi +%\subsubsection{Finnish} +% Identify file % \begin{macrocode} -\ProvidesFile{dt-usorbian.def}[2004/10/31] - -\providecommand{\monthnamenewusorbian}[1][\month]{% +\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}% -\or januara% -\or februara% -\or m\v erca% -\or apryla% -\or meje% -\or junija% -\or julija% -\or awgusta% -\or septembra% -\or oktobra% -\or nowembra% -\or decembra% -\else \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% +\or huhtikuuta% +\or toukokuuta% +\or kes\"akuuta% +\or hein\"akuuta% +\or elokuuta% +\or syyskuuta% +\or lokakuuta% +\or marraskuuta% +\or joulukuuta% +\else +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 to 12}% \fi} - -\providecommand{\monthnameoldusorbian}[1][\month]{% +% \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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-french.def> +% \end{macrocode} +%\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% +\or lundi% +\or mardi% +\or mercredi% +\or jeudi% +\or vendredi% +\or samedi% +\fi} +% \end{macrocode} +% Define abbreviated week day names (are these correct?) +% \begin{macrocode} +\providecommand{\shortdayofweeknameidfrench}[1]{% +\ifcase#1\relax +\or dim% +\or lun% +\or mar% +\or mer% +\or jeu% +\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 to 12}% -\or wulkeho r\'o\v zka% -\or ma\l eho r\'o\v zka% -\or nal\v etnika% -\or jutrownika% -\or r\'o\v zownika% -\or sma\v znika% -\or pra\v znika% -\or \v znjenca% -\or po\v znjenca% -\or winowca% -\or nazymnika% -\or hodownika% -\else \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 (janvier) to 12 (decembre)}% +\or janvier% +\or f\'evrier% +\or mars% +\or avril% +\or mai% +\or juin% +\or juillet% +\or ao\^ut% +\or septembre% +\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)}% \fi} - -\let\monthnameusorbian=\monthnamenewusorbian - -\DeclareRobustCommand*\newdateusorbian{% +% \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.~\monthnamenewusorbian[\@month]\space\number\@year}} - -\DeclareRobustCommand*\olddateusorbian{% +\number\@day\ifnum\@day=1{\ier}\fi\space +\monthnamefrench[\@month]\space \number\@year}} +% \end{macrocode} +%\iffalse +% \begin{macrocode} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-galician.def> +% \end{macrocode} +%\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}% +\or xaneiro% +\or febreiro% +\or marzo% +\or abril% +\or maio% +\or xu\~no% +\or xullo% +\or agosto% +\or setembro% +\or outubro% +\or novembro% +\or decembro% +\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.~\monthnameoldusorbian[\@month]\space\number\@year}} - -\let\dateusorbian\newdateusorbian +\number\@day~de\space\monthnamegalician[\@month]\space +de~\number\@year}} % \end{macrocode} +%\iffalse % \begin{macrocode} -% +% % \end{macrocode} +%\fi +%\iffalse % \begin{macrocode} -%<*dt-welsh.def> +%<*dt-german.def> % \end{macrocode} -%Welsh +%\fi +%\subsubsection{German} +% Identify file % \begin{macrocode} -\ProvidesFile{dt-welsh.def}[2004/10/31] - -\providecommand{\monthnamewelsh}[1][\month]{% +\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}% -\or Ionawr% -\or Chwefror% -\or Mawrth% -\or Ebrill% +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 to 12}% +\or Januar% +\or Februar% +\or M\"arz% +\or April% \or Mai% -\or Mehefin% -\or Gorffennaf% -\or Awst% -\or Medi% -\or Hydref% -\or Tachwedd% -\or Rhagfyr% -\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% +\or Juni% +\or Juli% +\or August% +\or September% +\or Oktober% +\or November% +\or Dezember% +\else +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 (janvier) to 12 (decembre)}% \fi} - -\DeclareRobustCommand*\datewelsh{% +% \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 -\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.~\monthnamegerman[\@month]\space\number\@year}} % \end{macrocode} +%\iffalse % \begin{macrocode} -% +% % \end{macrocode} +%\fi +%\iffalse % \begin{macrocode} -%<*datetime.sty> +%<*dt-greek.def> % \end{macrocode} -%\subsection{datetime.sty} -% This section deals with the code for \texttt{datetime.sty} +%\fi +%\subsubsection{Greek} +% Identify file % \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{datetime}[2005/09/30 v2.46 Date Time Package] +\ProvidesFile{dt-greek.def}[2004/10/31] % \end{macrocode} -%\texttt{fmtcount.sty} needs to be loaded here as it defines the command |\fmtord| which may be redefined later: +% Define month names. % \begin{macrocode} -\RequirePackage{fmtcount} +\providecommand{\monthnamegreek}[1][\month]{% +\@orgargctr=#1\relax +\ifcase\@orgargctr +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 to 12}% +\or Ianouar'iou% +\or Febrouar'iou% +\or Mart'iou% +\or April'iou% +\or Ma'"iou% +\or Ioun'iou% +\or Ioul'iou% +\or Augo'ustou% +\or Septembr'iou% +\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}% +\fi} % \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. +% (Re)Define declaration to switch to this format. % \begin{macrocode} -\newif\if@dt@nodate -\@dt@nodatefalse +\DeclareRobustCommand*\dategreek{% +\renewcommand{\formatdate}[3]{% +\@day=##1\relax\@month=##2\relax\@year=##3\relax +\number\@day\space\monthnamegreek[\@month]\space\number\@year}} % \end{macrocode} -% Define the character used to separate the numbers in the formats defined by -% |\ddmmyyyy| etc +%\iffalse % \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. +%\fi +%\iffalse % \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}}}} +%<*dt-hebrew.def> % \end{macrocode} -% Now define the declarations that redefine |\formatdate| as they -% are used by the package options. +%\fi +%\subsubsection{Hebrew} +% Identify file % \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}} +\ProvidesFile{dt-hebrew.def}[2004/10/31] % \end{macrocode} -% (New to v.2.45) Define commands to save dates -% and later format them. +% Babel already provides Hebrew month names, so just provide a +% synonym. % \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}}} +\let\monthnamehebrew=\hebmonth % \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 +% Redefine declaration to switch to this format. (This uses +% |\hebdate| which is defined by babel.) % \begin{macrocode} -\DeclareRobustCommand*{\currenttime}{\xxivtime} - -\newcommand{\timeseparator}{:} - -\providecommand{\settimeformat}[1]{\DeclareRobustCommand*\currenttime{\csname#1\endcsname}} +\DeclareRobustCommand*\datehebrew{% +\renewcommand{\formatdate}[3]{% +\@day=##1\relax\@month=##2\relax\@year=##3\relax +\hebdate\@day\@month\@year}} % \end{macrocode} -% Set defaults: +%\iffalse % \begin{macrocode} -\longdate -\showdowtrue +% % \end{macrocode} -% Load in specifications from configuration file: +%\fi +%\iffalse % \begin{macrocode} -\InputIfFileExists{datetime.cfg}{\typeout{Loading local datetime configurations}}{\typeout{No datetime.cfg file found}} +%<*dt-icelandic.def> % \end{macrocode} -% Specify the package options, specify default options and process +%\fi +%\subsubsection{Icelandic} +% Identify file % \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} +\ProvidesFile{dt-icelandic.def}[2004/10/31] % \end{macrocode} -% \subsubsection{Date Macros} -% Define the macro that prints the month name. -% (Only define this command if @dt@nodate is false) +% Define month names. % \begin{macrocode} -\if@dt@nodate -\typeout{datetime package message : option "nodate" used, so not defining \protect\monthname} -\else -\providecommand{\monthnameenglish}[1][\month]{% +\providecommand{\monthnameicelandic}[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)}% +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 to 12}% +\or janúar% +\or febrúar% +\or mars% +\or apríl% +\or maí% +\or júní% +\or júlí% +\or ágúst% +\or september% +\or október% +\or nóvember% +\or desembe% +\else +\PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 to 12}% \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) +% (Re)Define declaration to switch to this format. % \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 +\DeclareRobustCommand*\dateicelandic{% +\renewcommand{\formatdate}[3]{% +\@day=##1\relax\@month=##2\relax\@year=##3\relax +\number\@day.~\monthnameicelandic[\@month]\space\number\@year}} % \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| +%\iffalse % \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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-irish.def> +% \end{macrocode} +%\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}% +\or Ean\'air% +\or Feabhra% +\or M\'arta% +\or Aibre\'an% +\or Bealtaine% +\or Meitheamh% +\or I\'uil% +\or L\'unasa% +\or Me\'an F\'omhair% +\or Deireadh F\'omhair% +\or M\'{\i} na Samhna% +\or M\'{\i} na Nollag% \else -% Using the algorithm documented at -% http://userpages.wittenberg.edu/bshelburne/Comp150/DayofWeek.htm - -% \testifleapyear{} -\providecommand{\testifleapyear}[1]{% -\leapyearfalse -\@year=#1\relax -\@dtctr=\@year -\@modulo{\@dtctr}{400}% -\ifnum\@dtctr=0\relax -\leapyeartrue % year mod 400 = 0 => leap year +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-italian.def> +% \end{macrocode} +%\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}% +\or gennaio% +\or febbraio% +\or marzo% +\or aprile% +\or maggio% +\or giugno% +\or luglio% +\or agosto% +\or settembre% +\or ottobre% +\or novembre% +\or dicembre% \else -\@dtctr=\@year -\@modulo{\@dtctr}{100}% -\ifnum\@dtctr=0\relax -\leapyearfalse % year mod 100 = 0 && year mod 400 != 0 => not a leap year +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-latin.def> +% \end{macrocode} +%\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}% +\or Ianuarii% +\or Februarii% +\or Martii% +\or Aprilis% +\or Maii% +\or Iunii% +\or Iulii% +\or Augusti% +\or Septembris% +\or Octobris% +\or Novembris% +\or Decembris% \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{}{}{} - -\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 +\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}}}} +% \end{macrocode} +%\iffalse +% \begin{macrocode} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-lsorbian.def> +% \end{macrocode} +%\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}% +\or januara% +\or februara% +\or m\v erca% +\or apryla% +\or maja% +\or junija% +\or julija% +\or awgusta% +\or septembra% +\or oktobra% +\or nowembra% +\or decembra% \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{}{}{} - -\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% +\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}% +\or wjelikego ro\v zka% +\or ma\l ego ro\v zka% +\or nal\v etnika% +\or jat\v sownika% +\or ro\v zownika% +\or sma\v znika% +\or pra\v znika% +\or \v znje\'nca% +\or po\v znje\'nca% +\or winowca% +\or nazymnika% +\or godownika% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-magyar.def> +% \end{macrocode} +%\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}% +\or janu\'ar% +\or febru\'ar% +\or m\'arcius% +\or \'aprilis% +\or m\'ajus% +\or j\'unius% +\or j\'ulius% +\or augusztus% +\or szeptember% +\or okt\'ober% +\or november% +\or december% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-naustrian.def> +% \end{macrocode} +%\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}% +\or J\"anner% +\or Februar% +\or M\"arz% +\or April% +\or Mai% +\or Juni% +\or Juli% +\or August% +\or September% +\or Oktober% +\or November% +\or Dezember% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-ngerman.def> +% \end{macrocode} +%\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}% +\or Januar% +\or Februar% +\or M\"arz% +\or April% +\or Mai% +\or Juni% +\or Juli% +\or August% +\or September% +\or Oktober% +\or November% +\or Dezember% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-norsk.def> +% \end{macrocode} +%\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}% +\or januar% +\or februar% +\or mars% +\or april% +\or mai% +\or juni% +\or juli% +\or august% +\or september% +\or oktober% +\or november% +\or desember% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-polish.def> +% \end{macrocode} +%\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}% +\or stycznia% +\or lutego% +\or marca% +\or kwietnia% +\or maja% +\or czerwca% +\or lipca% +\or sierpnia% +\or wrze\'snia% +\or pa\'zdziernika% +\or listopada% +\or grudnia% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-portuges.def> +% \end{macrocode} +%\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% +\or segunda-feira% +\or ter\c{c}a-feira% +\or quarta-feira% +\or quinta-feira% +\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}% +\or Janeiro% +\or Fevereiro% +\or Mar\c{c}o% +\or Abril% +\or Maio% +\or Junho% +\or Julho% +\or Agosto% +\or Setembro% +\or Outubro% +\or Novembro% +\or Dezembro% +\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}} +% \end{macrocode} +%\iffalse +% \begin{macrocode} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-romanian.def> +% \end{macrocode} +%\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}% +\or ianuarie% +\or februarie% +\or martie% +\or aprilie% +\or mai% +\or iunie% +\or iulie% +\or august% +\or septembrie% +\or octombrie% +\or noiembrie% +\or decembrie% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-russian.def> +% \end{macrocode} +%\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}% +\or \cyrya\cyrn\cyrv\cyra\cyrr\cyrya\or + \cyrf\cyre\cyrv\cyrr\cyra\cyrl\cyrya\or + \cyrm\cyra\cyrr\cyrt\cyra\or + \cyra\cyrp\cyrr\cyre\cyrl\cyrya\or + \cyrm\cyra\cyrya\or + \cyri\cyryu\cyrn\cyrya\or + \cyri\cyryu\cyrl\cyrya\or + \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra\or + \cyrs\cyre\cyrn\cyrt\cyrya\cyrb\cyrr\cyrya\or + \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}% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-samin.def> +% \end{macrocode} +%\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}% +\or o\dj{}\dj{}ajagem\'anu\or + guovvam\'anu\or + njuk\v cam\'anu\or + cuo\ng{}om\'anu\or + miessem\'anu\or + geassem\'anu\or + suoidnem\'anu\or + borgem\'anu\or + \v cak\v cam\'anu\or + 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}% +\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}} +% \end{macrocode} +%\iffalse +% \begin{macrocode} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-scottish.def> +% \end{macrocode} +%\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}% +\or am Faoilteach% +\or an Gearran% +\or am M\`art% +\or an Giblean% +\or an C\`eitean% +\or an t-\`Og mhios% +\or an t-Iuchar% +\or L\`unasdal% +\or an Sultuine% +\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}% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-serbian.def> +% \end{macrocode} +%\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}% +\or januar% +\or februar% +\or mart% +\or april% +\or maj% +\or juni% +\or juli% +\or avgust% +\or septembar% +\or oktobar% +\or novembar% +\or decembar% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-slovak.def> +% \end{macrocode} +%\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}% +\or janu\'ara% +\or febru\'ara% +\or marca% +\or apr\'{\i}la% +\or m\'aja% +\or j\'una% +\or j\'ula% +\or augusta% +\or septembra% +\or okt\'obra% +\or novembra% +\or decembra% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-slovene.def> +% \end{macrocode} +%\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}% +\or januar% +\or februar% +\or marec% +\or april% +\or maj% +\or junij% +\or julij% +\or avgust% +\or september% +\or oktober% +\or november% +\or december% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-spanish.def> +% \end{macrocode} +%\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% +\or lunes% +\or martes% +\or mi\'ercoles% +\or jueves% +\or viernes% +\or s\'abado% +\fi} +% \end{macrocode} +% Define abbreviated week day names (is this correct?) +% \begin{macrocode} +\providecommand{\shortdayofweeknameidspanish}[1]{% +\ifcase#1\relax +\or dom% +\or lun% +\or mar% +\or mi\'e% +\or jue% +\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}% +\or enero% +\or febrero% +\or marzo% +\or abril% +\or mayo% +\or junio% +\or julio% +\or agosto% +\or septiembre% +\or octubre% +\or noviembre% +\or diciembre% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-swedish.def> +% \end{macrocode} +%\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}% +\or januari% +\or februari% +\or mars% +\or april% +\or maj% +\or juni% +\or juli% +\or augusti% +\or september% +\or oktober% +\or november% +\or december% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-turkish.def> +% \end{macrocode} +%\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}% +\or Ocak% +\or \c Subat% +\or Mart% +\or Nisan% +\or May\i{}s% +\or Haziran% +\or Temmuz% +\or A\u gustos% +\or Eyl\"ul% +\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}% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-ukraineb.def> +% \end{macrocode} +%\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}% +\or \cyrs\cyrii\cyrch\cyrn\cyrya\or + \cyrl\cyryu\cyrt\cyro\cyrg\cyro\or + \cyrb\cyre\cyrr\cyre\cyrz\cyrn\cyrya\or + \cyrk\cyrv\cyrii\cyrt\cyrn\cyrya\or + \cyrt\cyrr\cyra\cyrv\cyrn\cyrya\or + \cyrch\cyre\cyrr\cyrv\cyrn\cyrya\or + \cyrl\cyri\cyrp\cyrn\cyrya\or + \cyrs\cyre\cyrr\cyrp\cyrn\cyrya\or + \cyrv\cyre\cyrr\cyre\cyrs\cyrn\cyrya\or + \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}% +\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} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*dt-usorbian.def> +% \end{macrocode} +%\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}% +\or januara% +\or februara% +\or m\v erca% +\or apryla% +\or meje% +\or junija% +\or julija% +\or awgusta% +\or septembra% +\or oktobra% +\or nowembra% +\or decembra% +\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{% +Month numbers should go from 1 to 12}% \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% +% \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}% +\or wulkeho r\'o\v zka% +\or ma\l eho r\'o\v zka% +\or nal\v etnika% +\or jutrownika% +\or r\'o\v zownika% +\or sma\v znika% +\or pra\v znika% +\or \v znjenca% +\or po\v znjenca% +\or winowca% +\or nazymnika% +\or hodownika% +\else \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month numbers should go from 1 to 12}% \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) +% Set up default % \begin{macrocode} -\if@dt@nodate -\else -\DeclareRobustCommand*{\today}{\formatdate{\day}{\month}{\year}} -\fi +\let\monthnameusorbian=\monthnamenewusorbian % \end{macrocode} -%Check to see if babel package has redefined |\today|. +% (Re)Define declaration to switch to (new) format. % \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 +\DeclareRobustCommand*\newdateusorbian{% +\renewcommand{\formatdate}[3]{% +\@day=##1\relax\@month=##2\relax\@year=##3\relax +\number\@day.~\monthnamenewusorbian[\@month]\space\number\@year}} % \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. +% (Re)Define declaration to switch to (old) 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 - +\DeclareRobustCommand*\olddateusorbian{% +\renewcommand{\formatdate}[3]{% +\@day=##1\relax\@month=##2\relax\@year=##3\relax +\number\@day.~\monthnameoldusorbian[\@month]\space\number\@year}} % \end{macrocode} -% \subsubsection{Time Macros} -% Define a command to create a new time format, similar to the new date format. +% Set up default % \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}}} +\let\dateusorbian\newdateusorbian % \end{macrocode} -% Define commands to print the current time. +%\iffalse % \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 +%\fi +%\iffalse % \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 +%<*dt-welsh.def> % \end{macrocode} +%\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}% +\or Ionawr% +\or Chwefror% +\or Mawrth% +\or Ebrill% +\or Mai% +\or Mehefin% +\or Gorffennaf% +\or Awst% +\or Medi% +\or Hydref% +\or Tachwedd% +\or Rhagfyr% +\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}} +% \end{macrocode} +% \subsection{LaTeX2HTML Perl Script} +%\iffalse +% \begin{macrocode} +% % \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} % % \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} % % \end{macrocode} +%\fi %\Finale \endinput diff --git a/Master/texmf-dist/source/latex/datetime/datetime.ins b/Master/texmf-dist/source/latex/datetime/datetime.ins index 66c9ae19297..96a7d8c875d 100644 --- a/Master/texmf-dist/source/latex/datetime/datetime.ins +++ b/Master/texmf-dist/source/latex/datetime/datetime.ins @@ -1,8 +1,8 @@ -% datetime.ins generated using makedtx version 0.9b 2005/10/1 15:23 +% datetime.ins generated using makedtx version 0.91b 2006/12/6 11:03 \input docstrip \preamble -Copyright (C) 2005 Nicola Talbot, all rights reserved. +Copyright (C) 2006 Nicola Talbot, all rights reserved. If you modify this file, you must change its name first. You are NOT ALLOWED to distribute this file alone. You are NOT ALLOWED to take money for the distribution or use of either this @@ -74,10 +74,10 @@ etc. \usepostamble\defaultpostamble\from{datetime.dtx}{dt-serbian.def,package}} \file{dt-ukraineb.def}{\usepreamble\defaultpreamble \usepostamble\defaultpostamble\from{datetime.dtx}{dt-ukraineb.def,package}} -\file{datetime.sty}{\usepreamble\defaultpreamble -\usepostamble\defaultpostamble\from{datetime.dtx}{datetime.sty,package}} \file{dt-bahasa.def}{\usepreamble\defaultpreamble \usepostamble\defaultpostamble\from{datetime.dtx}{dt-bahasa.def,package}} +\file{datetime.sty}{\usepreamble\defaultpreamble +\usepostamble\defaultpostamble\from{datetime.dtx}{datetime.sty,package}} \file{dt-russian.def}{\usepreamble\defaultpreamble \usepostamble\defaultpostamble\from{datetime.dtx}{dt-russian.def,package}} \file{dt-icelandic.def}{\usepreamble\defaultpreamble -- cgit v1.2.3