diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/datetime/datetime.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/datetime/datetime.sty | 830 |
1 files changed, 830 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/datetime/datetime.sty b/Master/texmf-dist/tex/latex/datetime/datetime.sty new file mode 100644 index 00000000000..f32ec32299c --- /dev/null +++ b/Master/texmf-dist/tex/latex/datetime/datetime.sty @@ -0,0 +1,830 @@ +%% +%% This is file `datetime.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% datetime.dtx (with options: `datetime.sty,package') +%% +%% datetime.dtx +%% Copyright 2015 Nicola Talbot +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license of (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Nicola Talbot. +%% +%% This work consists of the files datetime.dtx and datetime.ins and the derived files datetime-defaults.sty, datetime.sty, dt-american.def, dt-australian.def, dt-austrian.def, dt-bahasa.def, dt-basque.def, dt-breton.def, dt-british.def, dt-bulgarian.def, dt-canadian.def, dt-catalan.def, dt-croatian.def, dt-czech.def, dt-danish.def, dt-dutch.def, dt-esperanto.def, dt-estonian.def, dt-finnish.def, dt-french.def, dt-galician.def, dt-german.def, dt-greek.def, dt-hebrew.def, dt-icelandic.def, dt-irish.def, dt-italian.def, dt-latin.def, dt-lsorbian.def, dt-magyar.def, dt-naustrian.def, dt-newzealand.def, dt-ngerman.def, dt-norsk.def, dt-polish.def, dt-portuges.def, dt-romanian.def, dt-russian.def, dt-samin.def, dt-scottish.def, dt-serbian.def, dt-slovak.def, dt-slovene.def, dt-spanish.def, dt-swedish.def, dt-turkish.def, dt-UKenglish.def, dt-ukraineb.def, dt-USenglish.def, dt-usorbian.def, dt-welsh.def, dt-lang.tex, dt-sampl.tex, datetime.perl. +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{datetime}[2015/03/20 v2.60 Date Time Package] +\RequirePackage{etoolbox} +\RequirePackage{fmtcount} +\@ifundefined{@FCmodulo}% +{% + \let\@FCmodulo\@modulo +}{} +\RequirePackage{ifthen} +\RequirePackage{datetime-defaults} +\newif\if@dt@nodate +\@dt@nodatefalse +\newcommand{\dateseparator}{/} +\newif\if@dt@multilingual + \@ifpackageloaded{babel}% + {% + \@dt@multilingualtrue + }% + {% + \@ifpackageloaded{ngerman}% + {\@dt@multilingualtrue}% + {\@dt@multilingualfalse}% + } +\DeclareRobustCommand*{\ordinaldate}[1]{% + \if@dt@multilingual + \DTloadDefIfNotLoadedButExists{\languagename}% + \@ifundefined{ordinaldate\languagename}{#1}% + {% + \csname ordinaldate\languagename\endcsname{#1}% + }% + \else + \ordinalnum{#1}% + \fi +} +\newif\ifshowdow +\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}% +} +\let\twodigit\two@digits +\DeclareRobustCommand*{\yyyymmdddate}{% +\renewcommand*{\formatdate}[3]{% +\@day=##1\relax\@month=##2\relax\@year=##3\relax +\the\@year\dateseparator \twodigit\@month\dateseparator +\twodigit\@day}} +\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% +\@FCmodulo{\@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% +\@FCmodulo{\@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 +\Ordinalstringnum{\@day}\ of \monthname[\@month], +\Numberstringnum{\@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% +\@FCmodulo{\@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% +\@FCmodulo{\@dtctr}{100}% +\the\@month\dateseparator \the\@day\dateseparator \twodigit\@dtctr}} +\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}}} +\longdate +\showdowtrue +\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{\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}}} +\DeclareRobustCommand*{\currenttime}{% + \formattime{\currenthour}{\currentminute}{\currentsecond}% +} +\newcommand*{\formattime}[3]{\protect\@formattime{#1}{#2}{#3}} +\newcommand*{\@formattime}[3]{% + \csname timeformat@xxivtime\endcsname{#1}{#2}{#3}} +\newcommand*{\timeseparator}{:} +\providecommand*{\settimeformat}[1]{% + \@ifundefined{timeformat@#1}{% + \PackageError{datetime}{Unknown time format `#1'}{}% + }{% + \renewcommand*{\@formattime}[3]{% + \csname timeformat@#1\endcsname{##1}{##2}{##3}}% + }% +} +\newcount\c@HOUR +\newcount\c@HOURXII +\newcount\c@MINUTE +\newcount\c@TOHOUR +\newcount\c@TOMINUTE +\newcount\c@SECOND +\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} +\def\THESECOND{\the\c@SECOND} +\newcount\currenthour +\newcount\currentminute +\newcount\currentsecond +{\catcode`\D=12\relax + \gdef\@dt@getdate D:#1#2#3#4#5#6#7#8{\@dt@gettime}% +} +\@ifundefined{pdfcreationdate}{% + \currenthour=\time\relax + \divide\currenthour by 60\relax + \currentminute=\time\relax + \@FCmodulo{\currentminute}{60}% + \currentsecond=0\relax +}{% + \def\@dt@gettime#1#2#3#4#5#6#7\relax{% + \currenthour=#1#2\relax + \currentminute=#3#4\relax + \currentsecond=#5#6\relax}% + \expandafter\@dt@getdate\pdfcreationdate\relax +} +\providecommand*{\newtimeformat}[2]{% +\@ifundefined{#1}{% +\expandafter\def\csname#1\endcsname{% + \csname timeformat@#1\endcsname{\currenthour}{\currentminute}% + {\currentsecond}% +}% +\expandafter\def\csname timeformat@#1\endcsname##1##2##3{% +\c@HOUR=##1% +\c@HOURXII=\c@HOUR +\ifnum\c@HOURXII>12 +\advance\c@HOURXII by -12\relax +\fi +\c@MINUTE=##2% +\c@TOHOUR=\c@HOURXII +\advance\c@TOHOUR by 1\relax +\@FCmodulo{\c@TOHOUR}{12}% +\c@TOMINUTE=\c@MINUTE +\advance\c@TOMINUTE by -60\relax +\multiply\c@TOMINUTE by -1\relax +\c@SECOND=##3\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}}} +\newtimeformat{xxivtime}{% +\twodigit\THEHOUR\timeseparator\twodigit\THEMINUTE} +\newtimeformat{hhmmsstime}{% +\twodigit\THEHOUR\timeseparator\twodigit\THEMINUTE\timeseparator +\twodigit\THESECOND} +\newtimeformat{ampmtime}{% +\ifthenelse{\value{HOUR}=0}{12}{\THEHOURXII}\timeseparator +\twodigit\THEMINUTE +\ifthenelse{\value{HOUR}<12}{\amname}{% +\ifthenelse{\value{HOUR}=12}{ \noon}{\pmname}}} +\newcommand*{\hourstring}[1]{% +\ifthenelse{\value{#1}=0}{\midnight}{\Numberstring{#1}}} +\newtimeformat{oclock}{% + \ifthenelse{\(\value{HOUR}=0 \OR \value{HOUR}=12 \OR\value{HOUR}=24\)\AND + \value{MINUTE}=0}{% +\ifthenelse{\value{HOUR}=12}{\noon}{\midnight}}{% +\ifthenelse{\value{MINUTE}=0}{% +\Numberstring{HOUR} \oclockstring}{% +\ifthenelse{\value{MINUTE}=15}{% +\quarterpast\ \hourstring{HOUR}}{% +\ifthenelse{\value{MINUTE}=30}{% +\halfpast\ \hourstring{HOUR}}{% +\ifthenelse{\value{MINUTE}=45}{% +\quarterto\ \hourstring{TOHOUR}}{% +\ifthenelse{\value{MINUTE}<30}{% +\Numberstring{MINUTE}\ \ifthenelse{\value{MINUTE}=1}{minute}{minutes} +past \hourstring{HOURXII}}{% +\Numberstring{TOMINUTE}\ \ifthenelse{% +\value{TOMINUTE}=1}{minute}{minutes} to \hourstring{TOHOUR}}}}}}% +\ifthenelse{\value{HOUR}<12}{% +\ifthenelse{\value{HOUR}=0}{}{\ \amstring}}{% +\ifthenelse{\value{TOHOUR}=0}{}{\ \pmstring}}}} +\providecommand*{\amname}{am} +\providecommand*{\pmname}{pm} +\providecommand*{\amorpmname}{% +\ifthenelse{\value{HOUR}>11}{\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} +\InputIfFileExists{datetime.cfg}{\PackageInfo{datetime}{% +Loading local datetime configurations}}{% +\PackageInfo{datetime}{No datetime.cfg file found, using default +settings}} +\@ifpackageloaded{babel}{% + \newcommand*{\dt@addtoextras}[1]{% + \@ifundefined{extrasenglish}{}{% + \addto\extrasenglish{#1}% + }% + \@ifundefined{extrasamerican}{}{% + \addto\extrasamerican{#1}% + }% + \@ifundefined{extrasaustrian}{}{% + \addto\extrasaustrian{#1}% + }% + \@ifundefined{extrasaustralian}{}{% + \addto\extrasaustralian{#1}% + }% + \@ifundefined{extrasbahasa}{}{% + \addto\extrasbahasa{#1}% + }% + \@ifundefined{extrasbreton}{}{% + \addto\extrasbreton{#1}% + }% + \@ifundefined{extrasbritish}{}{% + \addto\extrasbritish{#1}% + }% + \@ifundefined{extrasbulgarian}{}{% + \addto\extrasbulgarian{#1}% + }% + \@ifundefined{extrascanadian}{}{% + \addto\extrascanadian{#1}% + }% + \@ifundefined{extrascatalan}{}{% + \addto\extrascatalan{#1}% + }% + \@ifundefined{extrascroatian}{}{% + \addto\extrascroatian{#1}% + }% + \@ifundefined{extrasczech}{}{% + \addto\extrasczech{#1}% + }% + \@ifundefined{extrasdanish}{}{% + \addto\extrasdanish{#1}% + }% + \@ifundefined{extrasesperanto}{}{% + \addto\extrasesperanto{#1}% + }% + \@ifundefined{extrasestonian}{}{% + \addto\extrasestonian{#1}% + }% + \@ifundefined{extrasfinnish}{}{% + \addto\extrasfinnish{#1}% + }% + \@ifundefined{extrasfrench}{}{% + \addto\extrasfrench{#1}% + }% + \@ifundefined{extrasgalician}{}{% + \addto\extrasgalician{#1}% + }% + \@ifundefined{extrasgerman}{}{% + \addto\extrasgerman{#1}% + }% + \@ifundefined{extrasgreek}{}{% + \addto\extrasgreek{#1}% + }% + \@ifundefined{extrashebrew}{}{% + \addto\extrashebrew{#1}% + }% + \@ifundefined{extrasicelandic}{}{% + \addto\extrasicelandic{#1}% + }% + \@ifundefined{extrasirish}{}{% + \addto\extrasirish{#1}% + }% + \@ifundefined{extrasitalian}{}{% + \addto\extrasitalian{#1}% + }% + \@ifundefined{extraslatin}{}{% + \addto\extraslatin{#1}% + }% + \@ifundefined{extraslsorbian}{}{% + \addto\extraslsorbian{#1}% + }% + \@ifundefined{extrasmagyar}{}{% + \addto\extrasmagyar{#1}% + }% + \@ifundefined{extrasnaustrian}{}{% + \addto\extrasnaustrian{#1}% + }% + \@ifundefined{extrasngerman}{}{% + \addto\extrasngerman{#1}% + }% + \@ifundefined{extrasnewzealand}{}{% + \addto\extrasnewzealand{#1}% + }% + \@ifundefined{extrasnorsk}{}{% + \addto\extrasnorsk{#1}% + }% + \@ifundefined{extraspolish}{}{% + \addto\extraspolish{#1}% + }% + \@ifundefined{extrasportuges}{}{% + \addto\extrasportuges{#1}% + }% + \@ifundefined{extrasromanian}{}{% + \addto\extrasromanian{#1}% + }% + \@ifundefined{extrasrussian}{}{% + \addto\extrasrussian{#1}% + }% + \@ifundefined{extrassamin}{}{% + \addto\extrassamin{#1}% + }% + \@ifundefined{extrasscottish}{}{% + \addto\extrasscottish{#1}% + }% + \@ifundefined{extrasserbian}{}{% + \addto\extrasserbian{#1}% + }% + \@ifundefined{extrasslovak}{}{% + \addto\extrasslovak{#1}% + }% + \@ifundefined{extrasslovene}{}{% + \addto\extrasslovene{#1}% + }% + \@ifundefined{extrasspanish}{}{% + \addto\extrasspanish{#1}% + }% + \@ifundefined{extrasswedish}{}{% + \addto\extrasswedish{#1}% + }% + \@ifundefined{extrasturkish}{}{% + \addto\extrasturkish{#1}% + }% + \@ifundefined{extrasUKenglish}{}{% + \addto\extrasUKenglish{#1}% + }% + \@ifundefined{extrasukraine}{}{% + \addto\extrasukraine{#1}% + }% + \@ifundefined{extrasUSenglish}{}{% + \addto\extrasUSenglish{#1}% + }% + \@ifundefined{extrasusorbian}{}{% + \addto\extrasusorbian{#1}% + }% + \@ifundefined{extraswelsh}{}{% + \addto\extraswelsh{#1}% + }% + } +}{% + \newcommand*{\dt@addtoextras}[1]{} +} +\newcommand*{\setdefaultdate}[1]{\dt@addtoextras{#1}#1} +\RequirePackage{fmtcount} +\DeclareOption{long}{\setdefaultdate{\longdate}} +\DeclareOption{short}{\setdefaultdate{\shortdate}} +\DeclareOption{yyyymmdd}{\setdefaultdate{\yyyymmdddate}} +\DeclareOption{ddmmyyyy}{\setdefaultdate{\ddmmyyyydate}} +\DeclareOption{dmyyyy}{\setdefaultdate{\dmyyyydate}} +\DeclareOption{ddmmyy}{\setdefaultdate{\ddmmyydate}} +\DeclareOption{dmyy}{\setdefaultdate{\dmyydate}} +\DeclareOption{text}{\setdefaultdate{\textdate}} +\DeclareOption{us}{\setdefaultdate{\usdate}} +\DeclareOption{mmddyyyy}{\setdefaultdate{\mmddyyyydate}} +\DeclareOption{mdyyyy}{\setdefaultdate{\mdyyyydate}} +\DeclareOption{mmddyy}{\setdefaultdate{\mmddyydate}} +\DeclareOption{mdyy}{\setdefaultdate{\mdyydate}} +\DeclareOption{level}{\fmtcountsetoptions{fmtord=level}} +\DeclareOption{raise}{\fmtcountsetoptions{fmtord=raise}} +\DeclareOption{dayofweek}{\showdowtrue} +\DeclareOption{nodayofweek}{\showdowfalse} +\DeclareOption{nodate}{\@dt@nodatetrue} +\DeclareOption{hhmmss}{\settimeformat{hhmmsstime}} +\DeclareOption{24hr}{\settimeformat{xxivtime}} +\DeclareOption{12hr}{\settimeformat{ampmtime}} +\DeclareOption{oclock}{\settimeformat{oclock}} +\DeclareOption{iso}{% + \setdefaultdate{\yyyymmdddate}\settimeformat{hhmmsstime}% + \renewcommand*{\dateseparator}{-}% + \renewcommand*{\timeseparator}{:}% +} +\newcommand*{\loadDTdef}[1]{% + \DTifDefLoaded{#1}% + {}% + {% + \InputIfFileExists{dt-#1.def}% + {}% + {% + \PackageWarning{datetime}{Can't find datetime language + definition file for `#1'}% + }% + }% +} +\newcommand{\DTifDefLoaded}[3]{% + \@ifundefined{ver@dt-#1.def}{#3}{#2}% +} +\newcommand{\DTloadDefIfNotLoadedButExists}[1]{% + \DTifDefLoaded{#1}% + {}% + {% + \bgroup + \catcode `\@ 11\relax + \InputIfFileExists{dt-#1.def}{}{}% + \egroup + }% +}% +\DeclareOption{austrian}{\loadDTdef{austrian}} +\DeclareOption{american}{\loadDTdef{american}} +\DeclareOption{bahasa}{\loadDTdef{bahasa}} +\DeclareOption{basque}{\loadDTdef{basque}} +\DeclareOption{breton}{\loadDTdef{breton}} +\DeclareOption{british}{\loadDTdef{british}} +\DeclareOption{bulgarian}{\loadDTdef{bulgarian}} +\DeclareOption{catalan}{\loadDTdef{catalan}} +\DeclareOption{croatian}{\loadDTdef{croatian}} +\DeclareOption{czech}{\loadDTdef{czech}} +\DeclareOption{danish}{\loadDTdef{danish}} +\DeclareOption{dutch}{\loadDTdef{dutch}} +\DeclareOption{esperanto}{\loadDTdef{esperanto}} +\DeclareOption{estonian}{\loadDTdef{estonian}} +\DeclareOption{finnish}{\loadDTdef{finnish}} +\DeclareOption{french}{\loadDTdef{french}} +\DeclareOption{galician}{\loadDTdef{galician}} +\DeclareOption{german}{\loadDTdef{german}\dategerman} +\DeclareOption{greek}{\loadDTdef{greek}} +\DeclareOption{hebrew}{\loadDTdef{hebrew}} +\DeclareOption{icelandic}{\loadDTdef{icelandic}} +\DeclareOption{irish}{\loadDTdef{irish}} +\DeclareOption{italian}{\loadDTdef{italian}} +\DeclareOption{latin}{\loadDTdef{latin}} +\DeclareOption{lsorbian}{\loadDTdef{lsorbian}} +\DeclareOption{magyar}{\loadDTdef{magyar}} +\DeclareOption{naustrian}{\loadDTdef{naustrian}} +\DeclareOption{ngerman}{\loadDTdef{ngerman}\datengerman} +\DeclareOption{norsk}{\loadDTdef{norsk}} +\DeclareOption{polish}{\loadDTdef{polish}} +\DeclareOption{portuges}{\loadDTdef{portuges}} +\DeclareOption{romanian}{\loadDTdef{romanian}} +\DeclareOption{russian}{\loadDTdef{russian}} +\DeclareOption{samin}{\loadDTdef{samin}} +\DeclareOption{scottish}{\loadDTdef{scottish}} +\DeclareOption{serbian}{\loadDTdef{serbian}} +\DeclareOption{slovak}{\loadDTdef{slovak}} +\DeclareOption{slovene}{\loadDTdef{slovene}} +\DeclareOption{spanish}{\loadDTdef{spanish}} +\DeclareOption{swedish}{\loadDTdef{swedish}} +\DeclareOption{turkish}{\loadDTdef{turkish}} +\DeclareOption{ukraineb}{\loadDTdef{ukraineb}} +\DeclareOption{usorbian}{\loadDTdef{usorbian}} +\DeclareOption{UKenglish}{\loadDTdef{UKenglish}} +\DeclareOption{USenglish}{\loadDTdef{USenglish}} +\DeclareOption{welsh}{\loadDTdef{welsh}} +\ProcessOptions +\if@dt@nodate + \PackageInfo{datetime}{option "nodate" used, so note defining + \string\dateformat} +\else + \providecommand*{\dateformat}[4]{% + \@day=#2\relax\@month=#3\relax\@year=#4\relax#1} +\fi +\if@dt@nodate + \PackageInfo{datetime}{option "nodate" used, so not defining + \string\monthname} +\else +\newcommand*{\monthname}[1][\month]{% + \if@dt@multilingual + \DTloadDefIfNotLoadedButExists{\languagename}% + \@ifundefined{monthname\languagename}% + {% + \PackageWarning{datetime}{No month names provided for language + '\languagename'}% + \monthnameenglish[#1]% + }% + {\csname monthname\languagename\endcsname[#1]}% + \else + \monthnameenglish[#1]% + \fi +} +\fi +\if@dt@nodate + \PackageInfo{datetime}{option "nodate" used, so not defining + \protect\shortmonthname} +\else +\newcommand*{\shortmonthname}[1][\month]{% + \if@dt@multilingual + \DTloadDefIfNotLoadedButExists{\languagename}% + \@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 +\newif\ifDTleapyear +\@ifundefined{ifleapyear} +{% + \def\ifleapyear{\ifDTLleapyear} + \let\leapyeartrue\DTLleapyeartrue + \let\leapyearfalse\DTLleapyearfalse +}% +{} +\newcount\@dtctr +\if@dt@nodate + \PackageInfo{datetime}{option "nodate" used, so not defining + \string\dayofweek \space or \string\shortdayofweek} +\else +\providecommand*{\testifleapyear}[1]{% + \DTleapyearfalse + \@year=#1\relax + \@dtctr=\@year + \@FCmodulo{\@dtctr}{400}% + \ifnum\@dtctr=0\relax + \DTleapyeartrue + \else + \@dtctr=\@year + \@FCmodulo{\@dtctr}{100}% + \ifnum\@dtctr=0\relax + \DTleapyearfalse + \else + \@dtctr=\@year + \@FCmodulo{\@dtctr}{4}% + \ifnum\@dtctr=0\relax + \DTleapyeartrue + \fi + \fi + \fi +} +\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 + \ifDTleapyear\advance\dayofyear by 1\relax\fi + \fi + \advance\dayofyear by \@day\relax +} +\newcount\dayofweek +\providecommand*{\computedayofweek}[3]{% + \computedayofyear{#1}{#2}{#3}% + \@dtctr=#3\relax + \advance\@dtctr by -1901\relax + \@FCmodulo{\@dtctr}{28}% + \dayofweek=\@dtctr + \divide\dayofweek by 4\relax + \advance\dayofweek by \@dtctr + \advance\dayofweek by 2\relax + \@FCmodulo{\dayofweek}{7}% + \advance\dayofweek by \dayofyear + \advance\dayofweek by -1\relax + \@FCmodulo{\dayofweek}{7}% + \advance\dayofweek by 1\relax +} +\providecommand*{\dayofweeknameid}[1]{% + \if@dt@multilingual + \DTloadDefIfNotLoadedButExists{\languagename}% + \ifcsundef{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 +} +\providecommand*{\dayofweekname}[3]{% + \computedayofweek{#1}{#2}{#3}% + \dayofweeknameid{\dayofweek}% +} +\providecommand*{\thisdayofweekname}{% + \dayofweekname{\day}{\month}{\year}} +\providecommand*{\shortdayofweekname}[3]{% + \computedayofweek{#1}{#2}{#3}% + \if@dt@multilingual + \DTloadDefIfNotLoadedButExists{\languagename}% + \@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 +} +\providecommand*{\thisshortdayofweekname}{% + \dayofweekname{\day}{\month}{\year}} +\fi +\if@dt@nodate +\else + \DeclareRobustCommand*{\today}{\formatdate{\day}{\month}{\year}} +\fi +\if@dt@nodate +\else +\@ifundefined{dateenglish}{}{\let\dateenglish\longdate} +\@ifundefined{dateUKenglish}{}{\loadDTdef{UKenglish}} +\@ifundefined{dateUSenglish}{}{\loadDTdef{USenglish}} +\@ifundefined{datebritish}{}{\loadDTdef{british}} +\@ifundefined{dateamerican}{}{\loadDTdef{american}} +\@ifundefined{dateaustrian}{}{\loadDTdef{austrian}} +\@ifundefined{dateaustralian}{}{\loadDTdef{australian}} +\@ifundefined{datebahasa}{}{\loadDTdef{bahasa}} +\@ifundefined{datebasque}{}{\loadDTdef{basque}} +\@ifundefined{datebreton}{}{\loadDTdef{breton}} +\@ifundefined{datebulgarian}{}{\loadDTdef{bulgarian}} +\@ifundefined{datecanadian}{}{\loadDTdef{canadian}} +\@ifundefined{datecatalan}{}{\loadDTdef{catalan}} +\@ifundefined{datecroatian}{}{\loadDTdef{croatian}} +\@ifundefined{dateczech}{}{\loadDTdef{czech}} +\@ifundefined{datedanish}{}{\loadDTdef{danish}} +\@ifundefined{datedutch}{}{\loadDTdef{dutch}} +\@ifundefined{dateesperanto}{}{\loadDTdef{esperanto}} +\@ifundefined{dateestonian}{}{\loadDTdef{estonian}} +\@ifundefined{datefinnish}{}{\loadDTdef{finnish}} +\@ifundefined{datefrench}{}{\loadDTdef{french}} +\@ifundefined{dategalician}{}{\loadDTdef{galician}} +\@ifundefined{dategerman}{}{\loadDTdef{german}} +\@ifundefined{dategreek}{}{\loadDTdef{greek}} +\@ifundefined{datehebrew}{}{\loadDTdef{hebrew}} +\@ifundefined{dateicelandic}{}{\loadDTdef{icelandic}} +\@ifundefined{dateirish}{}{\loadDTdef{irish}} +\@ifundefined{dateitalian}{}{\loadDTdef{italian}} +\@ifundefined{datelatin}{}{\loadDTdef{latin}} +\@ifundefined{datelsorbian}{}{\loadDTdef{lsorbian}} +\@ifundefined{datemagyar}{}{\loadDTdef{magyar}} +\@ifundefined{datenaustrian}{}{\loadDTdef{naustrian}} +\@ifundefined{datenewzealand}{}{\loadDTdef{newzealand}} +\@ifundefined{datengerman}{}{\loadDTdef{ngerman}} +\@ifundefined{datenorsk}{}{\loadDTdef{norsk}} +\@ifundefined{datepolish}{}{\loadDTdef{polish}} +\@ifundefined{dateportuges}{}{\loadDTdef{portuges}} +\@ifundefined{dateromanian}{}{\loadDTdef{romanian}} +\@ifundefined{daterussian}{}{\loadDTdef{russian}} +\@ifundefined{datesamin}{}{\loadDTdef{samin}} +\@ifundefined{datescottish}{}{\loadDTdef{scottish}} +\@ifundefined{dateserbian}{}{\loadDTdef{serbian}} +\@ifundefined{dateslovak}{}{\loadDTdef{slovak}} +\@ifundefined{dateslovene}{}{\loadDTdef{slovene}} +\@ifundefined{datespanish}{}{\loadDTdef{spanish}} +\@ifundefined{dateswedish}{}{\loadDTdef{swedish}} +\@ifundefined{dateturkish}{}{\loadDTdef{turkish}} +\@ifundefined{dateukraineb}{}{\loadDTdef{ukraineb}} +\@ifundefined{dateusorbian}{}{\loadDTdef{usorbian}} +\@ifundefined{datewelsh}{}{\loadDTdef{welsh}} +\fi +\newtoks\dt@a \newtoks\dt@b +\edef\pdfdate{\the\year} +\dt@b=\expandafter{\pdfdate} +\dt@a=\expandafter{\the\month} +\ifnum\month<10\relax +\edef\pdfdate{\the\dt@b0\the\dt@a} +\else +\edef\pdfdate{\the\dt@b\the\dt@a} +\fi +\dt@b=\expandafter{\pdfdate} +\dt@a=\expandafter{\the\day} +\ifnum\day<10\relax +\edef\pdfdate{\the\dt@b0\the\dt@a} +\else +\edef\pdfdate{\the\dt@b\the\dt@a} +\fi +\@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 +\@dtctr=\time% +\@FCmodulo{\@dtctr}{60}% +\dt@b=\expandafter{\pdfdate} +\dt@a=\expandafter{\the\@dtctr} +\ifnum\@dtctr<10\relax +\edef\pdfdate{\the\dt@b0\the\dt@a} +\else +\edef\pdfdate{\the\dt@b\the\dt@a} +\fi +\dt@a={00} +\dt@b=\expandafter{\pdfdate} +\edef\pdfdate{\the\dt@b\the\dt@a} +\endinput +%% +%% End of file `datetime.sty'. |