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