%\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{Swiss German (de-CH): \texttt{datetime2-de-CH.ldf}} % \changes{2.0}{2017-10-03}{Added regional variant: Swiss German (de-CH)} % % Identify Module. % \begin{macrocode} \ProvidesDateTimeModule{de-CH}[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-CH" and "de-CH-numeric" styles. % The package wide separators such as \cs{dtm@datetimesep} are not used % in case other date formats are also required. % %\begin{macro}{\DTMdeCHdowdaysep} % The separator between weekday and day % \begin{macrocode} \newcommand*{\DTMdeCHdowdaysep}{,\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeCHdaymonthsep} % The separator between the day and month for the text format. % \begin{macrocode} \newcommand*{\DTMdeCHdaymonthsep}{.\DTMtexorpdfstring{\protect~}{\space}} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeCHmonthyearsep} % The separator between the month and year for the text format. % \begin{macrocode} \newcommand*{\DTMdeCHmonthyearsep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeCHdatetimesep} % The separator between the date and time blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMdeCHdatetimesep}{,\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeCHtimezonesep} % The separator between the time and zone blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMdeCHtimezonesep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeCHdatesep} % The separator for the numeric date format. % \begin{macrocode} \newcommand*{\DTMdeCHdatesep}{.} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeCHtimesep} % The separator for the numeric time format. % \begin{macrocode} \newcommand*{\DTMdeCHtimesep}{.} % \end{macrocode} %\end{macro} % % Provide keys that can be used in \cs{DTMlangsetup} to set these % separators. % \begin{macrocode} \DTMdefkey{de-CH}{dowdaysep}{\renewcommand*{\DTMdeCHdowdaysep}{#1}} \DTMdefkey{de-CH}{daymonthsep}{\renewcommand*{\DTMdeCHdaymonthsep}{#1}} \DTMdefkey{de-CH}{monthyearsep}{\renewcommand*{\DTMdeCHmonthyearsep}{#1}} \DTMdefkey{de-CH}{datetimesep}{\renewcommand*{\DTMdeCHdatetimesep}{#1}} \DTMdefkey{de-CH}{timezonesep}{\renewcommand*{\DTMdeCHtimezonesep}{#1}} \DTMdefkey{de-CH}{datesep}{\renewcommand*{\DTMdeCHdatesep}{#1}} \DTMdefkey{de-CH}{timesep}{\renewcommand*{\DTMdeCHtimesep}{#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-CH}{abbr}[true]{} % \end{macrocode} % % The default is to show the full name. % \begin{macrocode} \DTMsetbool{de-CH}{abbr}{false} % \end{macrocode} % % Define a boolean key that determines if the time zone mappings % should be used. % \begin{macrocode} \DTMdefboolkey{de-CH}{mapzone}[true]{} % \end{macrocode} % The default is to use mappings. % \begin{macrocode} \DTMsetbool{de-CH}{mapzone}{true} % \end{macrocode} % % Define a boolean key that determines if the day of month should be % displayed. % \begin{macrocode} \DTMdefboolkey{de-CH}{showdayofmonth}[true]{} % \end{macrocode} % The default is to show the day of month. % \begin{macrocode} \DTMsetbool{de-CH}{showdayofmonth}{true} % \end{macrocode} % % Define a boolean key that determines if the year should be % displayed. % \begin{macrocode} \DTMdefboolkey{de-CH}{showyear}[true]{} % \end{macrocode} % The default is to show the year. % \begin{macrocode} \DTMsetbool{de-CH}{showyear}{true} % \end{macrocode} % % % Define the "de-CH" style. % \begin{macrocode} \DTMnewstyle {de-CH}% label {% date style \renewcommand*\DTMdisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{de-CH}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMdeCHdowdaysep \fi \fi % \DTMifbool{de-CH}{showdayofmonth}% {\DTMgermanordinal{##3}\DTMdeCHdaymonthsep}% {}% % \DTMifbool{de-CH}{abbr}% {\DTMdeCHshortmonthname{##2}}% {\DTMgermanmonthname{##2}}% % \DTMifbool{de-CH}{showyear}% {% \DTMdeCHmonthyearsep% \number##1 % space intended }% {}% }% \renewcommand*\DTMDisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{de-CH}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMdeCHdowdaysep \fi \fi % \DTMifbool{de-CH}{showdayofmonth}% {\DTMgermanordinal{##3}\DTMdeCHdaymonthsep}% {}% % \DTMifbool{de-CH}{abbr}% {\DTMdeCHshortmonthname{##2}}% {\DTMgermanmonthname{##2}}% % \DTMifbool{de-CH}{showyear}% {% \DTMdeCHmonthyearsep% \number##1 % space intended }% {}% } }% {% time style (use default) \renewcommand*\DTMdisplaytime[3]{% \DTMtwodigits{##1}% \DTMdeCHtimesep\DTMtwodigits{##2}% \ifDTMshowseconds\DTMdeCHtimesep\DTMtwodigits{##3}\fi\space% Uhr% }% }% {% zone style \DTMresetzones \DTMgermanzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{de-CH}{mapzone}% {\DTMusezonemapordefault{##1}{##2}}% {% \ifnum##1<0\else+\fi\DTMtwodigits{##1}% \ifDTMshowzoneminutes\DTMdeCHtimesep\DTMtwodigits{##2}\fi }% }% }% {% full style \renewcommand*{\DTMdisplay}[9]{% \ifDTMshowdate \DTMdisplaydate{##1}{##2}{##3}{##4}% \DTMdeCHdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMdeCHtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% \renewcommand*{\DTMDisplay}[9]{% \ifDTMshowdate \DTMDisplaydate{##1}{##2}{##3}{##4}% \DTMdeCHdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMdeCHtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% }% % \end{macrocode} % % Define the corresponding numeric style. % \begin{macrocode} \DTMnewstyle {de-CH-numeric}% label {% date style \renewcommand*\DTMdisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{de-CH}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMdeCHdowdaysep \fi \fi % \DTMifbool{de-CH}{showdayofmonth}% {% \DTMtwodigits{##3}% \DTMdeCHdatesep }% {}% \DTMtwodigits{##2}% \DTMdeCHdatesep% \DTMifbool{de-CH}{showyear}% {% \DTMifbool{de-CH}{abbr}% {\DTMtwodigits{##1}}% {\number##1 }% space intended }% {}% }% \renewcommand*{\DTMDisplaydate}[4]{\DTMdisplaydate{##1}{##2}{##3}{##4}}% }% {% time style \renewcommand*\DTMdisplaytime[3]{% \DTMtwodigits{##1}% \DTMdeCHtimesep\DTMtwodigits{##2}% \ifDTMshowseconds\DTMdeCHtimesep\DTMtwodigits{##3}\fi\space% Uhr% }% }% {% zone style \DTMresetzones \DTMgermanzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{de-CH}{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}% \DTMdeCHdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMdeCHtimezonesep \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-CH}}% {\DTMsetstyle{de-CH-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-CH}}% {\DTMsetstyle{de-CH-numeric}}% }% }% }% {% \csdef{date\CurrentTrackedDialect}{% \DTMifcaseregional {}% do nothing {\DTMsetstyle{de-CH}}% {\DTMsetstyle{de-CH-numeric}}% }% }% % \end{macrocode} % \endinput