%\iffalse %<*package> %% \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 \~} % % % Doc-Source file to use with LaTeX2e % Copyright (C) 2015 Nicola Talbot, all rights reserved. % Copyright (C) 2017-19 Sebastian Friedl, all rights reserved. % \fi % % % % \subsection{German (de-DE): \texttt{datetime2-de-DE.ldf}} % \changes{2.0}{2017-10-03}{Added regional variant: German (de-DE)} % % Identify Module. % \begin{macrocode} \ProvidesDateTimeModule{de-DE}[2019/12/13 v3.0] % \end{macrocode} % Require the base German module. % \begin{macrocode} \RequireDateTimeModule{german-base} % \end{macrocode} % % % Allow the user to configure the "de-DE" and "de-DE-numeric" styles. % The package wide separators such as \cs{dtm@datetimesep} are not used % in case other date formats are also required. % %\begin{macro}{\DTMdeDEdowdaysep} % The separator between weekday and day. % \begin{macrocode} \newcommand*{\DTMdeDEdowdaysep}{,\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeDEdaymonthsep} % The separator between the day and month for the text format. % \begin{macrocode} \newcommand*{\DTMdeDEdaymonthsep}{.\DTMtexorpdfstring{\protect~}{\space}} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeDEmonthyearsep} % The separator between the month and year for the text format. % \begin{macrocode} \newcommand*{\DTMdeDEmonthyearsep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeDEdatetimesep} % The separator between the date and time blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMdeDEdatetimesep}{,\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeDEtimezonesep} % The separator between the time and zone blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMdeDEtimezonesep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeDEdatesep} % The separator for the numeric date format. % \begin{macrocode} \newcommand*{\DTMdeDEdatesep}{.} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeDEtimesep} % The separator for the numeric time format. % \begin{macrocode} \newcommand*{\DTMdeDEtimesep}{:} % \end{macrocode} %\end{macro} % % Provide keys that can be used in \cs{DTMlangsetup} to set these % separators. % \begin{macrocode} \DTMdefkey{de-DE}{dowdaysep}{\renewcommand*{\DTMdeDEdowdaysep}{#1}} \DTMdefkey{de-DE}{daymonthsep}{\renewcommand*{\DTMdeDEdaymonthsep}{#1}} \DTMdefkey{de-DE}{monthyearsep}{\renewcommand*{\DTMdeDEmonthyearsep}{#1}} \DTMdefkey{de-DE}{datetimesep}{\renewcommand*{\DTMdeDEdatetimesep}{#1}} \DTMdefkey{de-DE}{timezonesep}{\renewcommand*{\DTMdeDEtimezonesep}{#1}} \DTMdefkey{de-DE}{datesep}{\renewcommand*{\DTMdeDEdatesep}{#1}} \DTMdefkey{de-DE}{timesep}{\renewcommand*{\DTMdeDEtimesep}{#1}} % \end{macrocode} % % % Define a boolean key that can switch between full and abbreviated formats for % the month and day of week names. % \begin{macrocode} \DTMdefboolkey{de-DE}{abbr}[true]{} % \end{macrocode} % % The default is to show the full names. % \begin{macrocode} \DTMsetbool{de-DE}{abbr}{false} % \end{macrocode} % % Define a boolean key that determines if the time zone mappings % should be used. % \begin{macrocode} \DTMdefboolkey{de-DE}{mapzone}[true]{} % \end{macrocode} % The default is to use mappings. % \begin{macrocode} \DTMsetbool{de-DE}{mapzone}{true} % \end{macrocode} % % Define a boolean key that determines if the day of month should be % displayed. % \begin{macrocode} \DTMdefboolkey{de-DE}{showdayofmonth}[true]{} % \end{macrocode} % The default is to show the day of month. % \begin{macrocode} \DTMsetbool{de-DE}{showdayofmonth}{true} % \end{macrocode} % % Define a boolean key that determines if the year should be % displayed. % \begin{macrocode} \DTMdefboolkey{de-DE}{showyear}[true]{} % \end{macrocode} % The default is to show the year. % \begin{macrocode} \DTMsetbool{de-DE}{showyear}{true} % \end{macrocode} % % % Define the "de-DE" style. % \begin{macrocode} \DTMnewstyle {de-DE}% label {% date style \renewcommand*\DTMdisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{de-DE}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMdeDEdowdaysep \fi \fi % \DTMifbool{de-DE}{showdayofmonth}% {\DTMgermanordinal{##3}\DTMdeDEdaymonthsep}% {}% % \DTMifbool{de-DE}{abbr}% {\DTMgermanshortmonthname{##2}}% {\DTMgermanmonthname{##2}}% % \DTMifbool{de-DE}{showyear}% {% \DTMdeDEmonthyearsep% \number##1 % space intended }% {}% }% \renewcommand*\DTMDisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{de-DE}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMdeDEdowdaysep \fi \fi % \DTMifbool{de-DE}{showdayofmonth}% {\DTMgermanordinal{##3}\DTMdeDEdaymonthsep}% {}% % \DTMifbool{de-DE}{abbr}% {\DTMgermanshortmonthname{##2}}% {\DTMgermanmonthname{##2}}% % \DTMifbool{de-DE}{showyear}% {% \DTMdeDEmonthyearsep% \number##1 % space intended }% {}% } }% {% time style (use default) \renewcommand*\DTMdisplaytime[3]{% \DTMtwodigits{##1}% \DTMdeDEtimesep\DTMtwodigits{##2}% \ifDTMshowseconds\DTMdeDEtimesep\DTMtwodigits{##3}\fi }% }% {% zone style \DTMresetzones \DTMgermanzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{de-DE}{mapzone}% {\DTMusezonemapordefault{##1}{##2}}% {% \ifnum##1<0\else+\fi\DTMtwodigits{##1}% \ifDTMshowzoneminutes\DTMdeDEtimesep\DTMtwodigits{##2}\fi }% }% }% {% full style \renewcommand*{\DTMdisplay}[9]{% \ifDTMshowdate \DTMdisplaydate{##1}{##2}{##3}{##4}% \DTMdeDEdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMdeDEtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% \renewcommand*{\DTMDisplay}[9]{% \ifDTMshowdate \DTMDisplaydate{##1}{##2}{##3}{##4}% \DTMdeDEdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMdeDEtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% }% % \end{macrocode} % % Define the corresponding numeric style. % \begin{macrocode} \DTMnewstyle {de-DE-numeric}% label {% date style \renewcommand*\DTMdisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{de-DE}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMdeDEdowdaysep \fi \fi % \DTMifbool{de-DE}{showdayofmonth}% {% \DTMtwodigits{##3}% \DTMdeDEdatesep }% {}% \DTMtwodigits{##2}% \DTMdeDEdatesep% \DTMifbool{de-DE}{showyear}% {% \DTMifbool{de-DE}{abbr}% {\DTMtwodigits{##1}}% {\number##1 }% space intended }% {}% }% \renewcommand*{\DTMDisplaydate}[4]{\DTMdisplaydate{##1}{##2}{##3}{##4}}% }% {% time style \renewcommand*\DTMdisplaytime[3]{% \DTMtwodigits{##1}% \DTMdeDEtimesep\DTMtwodigits{##2}% \ifDTMshowseconds\DTMdeDEtimesep\DTMtwodigits{##3}\fi }% }% {% zone style \DTMresetzones \DTMgermanzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{de-DE}{mapzone}% {\DTMusezonemapordefault{##1}{##2}}% {% \ifnum##1<0\else+\fi\DTMtwodigits{##1}% \ifDTMshowzoneminutes\DTMgermantimesep\DTMtwodigits{##2}\fi }% }% }% {% full style \renewcommand*{\DTMdisplay}[9]{% \ifDTMshowdate \DTMdisplaydate{##1}{##2}{##3}{##4}% \DTMdeDEdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMdeDEtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% \renewcommand*{\DTMDisplay}{\DTMdisplay}% } % \end{macrocode} % % Switch the style according to the \opt{useregional} setting. % \begin{macrocode} \DTMifcaseregional {}% do nothing {\DTMsetstyle{de-DE}}% {\DTMsetstyle{de-DE-numeric}}% % \end{macrocode} % % Redefine \cs{dategerman} (or \cs{date}\meta{dialect}) to prevent % \sty{babel} from resetting \cs{today}. (For this to work, % \sty{babel} must already have been loaded if it's required.) % \begin{macrocode} \ifcsundef{date\CurrentTrackedDialect} {% \ifundef\dategerman {}% do nothing {% \def\dategerman{% \DTMifcaseregional {}% do nothing {\DTMsetstyle{de-DE}}% {\DTMsetstyle{de-DE-numeric}}% }% }% }% {% \csdef{date\CurrentTrackedDialect}{% \DTMifcaseregional {}% do nothing {\DTMsetstyle{de-DE}}% {\DTMsetstyle{de-DE-numeric}} }% }% % \end{macrocode} % \endinput