%\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 \~} % %\fi % \iffalse % Doc-Source file to use with LaTeX2e % Copyright (C) 2015 Nicola Talbot, all rights reserved. % Maintainer Tuomas Välimäki. % \fi % \iffalse %<*driver> \documentclass{ltxdoc} \usepackage{alltt} \usepackage{graphicx} \usepackage{fontspec} \usepackage[colorlinks, bookmarks, hyperindex=false, pdfauthor={Tuomas V\"alim\"aki}, pdftitle={datetime2.sty Finnish Module}]{hyperref} \CheckSum{464} \renewcommand*{\usage}[1]{\hyperpage{#1}} \renewcommand*{\main}[1]{\hyperpage{#1}} \IndexPrologue{\section*{\indexname}\markboth{\indexname}{\indexname}} \setcounter{IndexColumns}{2} \newcommand*{\sty}[1]{\textsf{#1}} \newcommand*{\opt}[1]{\texttt{#1}\index{#1=\texttt{#1}|main}} \newcommand*{\utc}[2]{\textsc{utc}\ifnum#1<0 $-$\number-#1\else $+$\number#1\fi \ifnum#2>0 :\number#2 \fi\relax} \RecordChanges \PageIndex \CodelineNumbered \begin{document} \DocInput{datetime2-finnish.dtx} \end{document} % %\fi % %\MakeShortVerb{"} % %\title{Finnish Module for datetime2 Package} %\author{Tuomas V\"alim\"aki \and Nicola L. C. Talbot (inactive)} %\date{2018-03-20 (v1.2)} %\maketitle % %\begin{abstract} %This is the Finnish language module for the \sty{datetime2} %package. If you want to use the settings in this module you must %install it in addition to installing \sty{datetime2}. If you use %\sty{babel} or \sty{polyglossia}, you will need this module to %prevent them from redefining \cs{today}. The \sty{datetime2} % \opt{useregional} setting must be set to "text" or "numeric" % for the language styles to be set. % Alternatively, you can set the style in the document using % \cs{DTMsetstyle}, but this may be changed by \cs{date}\meta{language} % depending on the value of the \opt{useregional} setting. % Currently there is only a regionless style. %\end{abstract} % %\tableofcontents %\clearpage % %\section{Introduction} %\label{sec:intro} %This module defines the styles "finnish" and "finnish-numeric". %The "finnish" style will automatically be set if the \opt{useregional} %option is set to \texttt{text}, and the "finnish-numeric" style is automatically %set if the \opt{useregional} option is set to \texttt{numeric}. % %There are a number of settings provided that can be used in %\cs{DTMlangsetup} to modify the date-time style. These are: % %\begin{description} %\item[\opt{dowdaysep}] The separator between the day of week name and the %day of month number. This defaults to \cs{space}. Ignored if the %\opt{showdow} option is \texttt{false}. % %\item[\opt{daymonthsep}] The separator between the day and the month %name in the \texttt{finnish} style. This defaults to \cs{space}. % %\item[\opt{monthyearsep}] The separator between the month name and year % in the \texttt{finnish} style. This defaults to \cs{space}. % %\item[\opt{datesep}] The separator between the date numbers in the %"finnish-numeric" style. This defaults to "." (period). % %\item[\opt{timesep}] The separator between the hours and minutes in both %"finnish" and "finnish-numeric" styles. This defaults to "." (period). % %\item[\opt{datetimesep}] The separator between the date and time for the %full date-time format (as used by \cs{DTMdisplay}) for both the %"finnish" and "finnish-numeric" styles. This defaults %to \cs{space}. % %\item[\opt{timezonesep}] The separator between the time and zone for the %full date-time format (as used by \cs{DTMdisplay}) for both the %"finnish" and "finnish-numeric" styles. This defaults %to \cs{space}. % %\item[\opt{abbr}] This is a~boolean key. If "true", the month (and week %day name if shown) is abbreviated for the "finnish" style. The default is "false". % %\item[\opt{mapzone}] This is a~boolean key. If "true" the time zone %mappings are applied. (The default is \texttt{true}.) The "finnish" % and "finnish-numeric" styles set the mappings EET %(\utc{02}{00}) and EEST (\utc{03}{00}). %Other time zone mappings that have previously been set %(for example, by another regional style) will remain unchanged %unless you redefine \cs{DTMresetzones} to reset or unset them. % %\item[\opt{showdayofmonth}] A boolean key that determines whether %or not to show the day of the month. The default value is "true". %If "false" the day-month separator is also omitted. % %\item[\opt{showyear}] A boolean key that determines whether %or not to show the year. The default value is "true". If "false" %the month-year separator is also omitted. %\end{description} % %The above settings are specific to this module. In addition, the %\opt{showdow} boolean option provided by the \sty{datetime2} package is %checked to determine whether or not to show the day of the %week in the "finnish" style. The \opt{showdate}, \opt{showzone}, %\opt{showseconds} and \opt{showzoneminutes} settings of \sty{datetime2} %are honoured. % %\StopEventually{% %\clearpage %\phantomsection %\addcontentsline{toc}{section}{Change History}% %\PrintChanges %\addcontentsline{toc}{section}{\indexname}% %\PrintIndex} %\section{The Code} %\iffalse % \begin{macrocode} %<*datetime2-finnish-utf8.ldf> % \end{macrocode} %\fi %\subsection{UTF-8 (\texttt{datetime2-finnish-utf8.ldf})} %This file contains the settings that use UTF-8 characters. This %file is loaded if XeLaTeX or LuaLaTeX are used. Please make sure %your text editor is set to UTF-8 if you want to view this code. %\changes{1.0}{2015-03-30}{Initial release} %\changes{1.1}{2016-03-29}{separated partitive case from month names % and added support for abbreviations and day of week} % % Identify module % \begin{macrocode} \ProvidesDateTimeModule{finnish-utf8}[2018/03/20 v1.2] % \end{macrocode} %\begin{macro}{\DTMfinnishordinal} % \begin{macrocode} \newcommand*{\DTMfinnishordinal}[1]{% \number#1.% } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishmonthname} % Finnish month names. % \begin{macrocode} \newcommand*{\DTMfinnishmonthname}[1]{% % \end{macrocode} % v1.1 separated partitive case from month names %\changes{1.1}{2016-03-29}{fixed} % \begin{macrocode} \ifcase#1 \or tammikuu% \or helmikuu% \or maaliskuu% \or huhtikuu% \or toukokuu% \or kesäkuu% \or heinäkuu% \or elokuu% \or syyskuu% \or lokakuu% \or marraskuu% \or joulukuu% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishMonthname} % As above but capitalize. % \begin{macrocode} \newcommand*{\DTMfinnishMonthname}[1]{% % \end{macrocode} % v1.1 separated partitive case from month names %\changes{1.1}{2016-03-29}{fixed} % \begin{macrocode} \ifcase#1 \or Tammikuu% \or Helmikuu% \or Maaliskuu% \or Huhtikuu% \or Toukokuu% \or Kesäkuu% \or Heinäkuu% \or Elokuu% \or Syyskuu% \or Lokakuu% \or Marraskuu% \or Joulukuu% \fi } % \end{macrocode} %\end{macro} % % Added support for abbreviations in v1.1. %\begin{macro}{\DTMfinnishshortmonthname} % Abbreviated Finnish month names. % \begin{macrocode} \newcommand*{\DTMfinnishshortmonthname}[1]{% % \end{macrocode} %\changes{1.1}{2016-03-29}{new} % \begin{macrocode} \ifcase#1 \or tammi% \or helmi% \or maalis% \or huhti% \or touko% \or kesä% \or heinä% \or elo% \or syys% \or loka% \or marras% \or joulu% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishshortMonthname} % As above but capitalize. % \begin{macrocode} \newcommand*{\DTMfinnishshortMonthname}[1]{% % \end{macrocode} %\changes{1.1}{2016-03-29}{new} % \begin{macrocode} \ifcase#1 \or Tammi% \or Helmi% \or Maalis% \or Huhti% \or Touko% \or Kesä% \or Heinä% \or Elo% \or Syys% \or Loka% \or Marras% \or Joulu% \fi } % \end{macrocode} %\end{macro} % %Added support for day of week names in v1.1. %\begin{macro}{\DTMfinnishweekdayname} % Finnish day of week names. % \begin{macrocode} \newcommand*{\DTMfinnishweekdayname}[1]{% % \end{macrocode} %\changes{1.1}{2016-03-29}{new} % \begin{macrocode} \ifcase#1 maanantai% \or tiistai% \or keskiviikko% \or torstai% \or perjantai% \or lauantai% \or sunnuntai% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishWeekdayname} % As above but capitalize. % \begin{macrocode} \newcommand*{\DTMfinnishWeekdayname}[1]{% % \end{macrocode} %\changes{1.1}{2016-03-29}{new} % \begin{macrocode} \ifcase#1 Maanantai% \or Tiistai% \or Keskiviikko% \or Torstai% \or Perjantai% \or Lauantai% \or Sunnuntai% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishshortweekdayname} % Finnish abbreviated day of week names. % \begin{macrocode} \newcommand*{\DTMfinnishshortweekdayname}[1]{% % \end{macrocode} %\changes{1.1}{2016-03-29}{new} % \begin{macrocode} \ifcase#1 ma% \or ti% \or ke% \or to% \or pe% \or la% \or su% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishshortWeekdayname} % As above but capitalize. % \begin{macrocode} \newcommand*{\DTMfinnishshortWeekdayname}[1]{% % \end{macrocode} %\changes{1.1}{2016-03-29}{new} % \begin{macrocode} \ifcase#1 Ma% \or Ti% \or Ke% \or To% \or Pe% \or La% \or Su% \fi } % \end{macrocode} %\end{macro} % %\iffalse % \begin{macrocode} % % \end{macrocode} %\fi %\iffalse % \begin{macrocode} %<*datetime2-finnish-ascii.ldf> % \end{macrocode} %\fi %\subsection{ASCII (\texttt{datetime2-finnish-ascii.ldf})} %This file contains the settings that use \LaTeX\ commands for %non-ASCII characters. This should be input if neither XeLaTeX nor %LuaLaTeX are used. Even if the user has loaded \sty{inputenc} with %"utf8", this file should still be used not the %\texttt{datetime2-finnish-utf8.ldf} file as the non-ASCII %characters are made active in that situation and would need %protecting against expansion. %\changes{1.0}{2015-03-30}{Initial release} %\changes{1.1}{2016-03-29}{separated partitive case from month names % and added support for abbreviations and day of week} % % Identify module % \begin{macrocode} \ProvidesDateTimeModule{finnish-ascii}[2018/03/20 v1.2] % \end{macrocode} % %\begin{macro}{\DTMfinnishordinal} % \begin{macrocode} \newcommand*{\DTMfinnishordinal}[1]{% \number#1.% } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishmonthname} % Finnish month names. % \begin{macrocode} \newcommand*{\DTMfinnishmonthname}[1]{% % \end{macrocode} % v1.1 separated partitive case from month names %\changes{1.1}{2016-03-29}{fixed} % \begin{macrocode} \ifcase#1 \or tammikuu% \or helmikuu% \or maaliskuu% \or huhtikuu% \or toukokuu% \or kes\protect\"akuu% \or hein\protect\"akuu% \or elokuu% \or syyskuu% \or lokakuu% \or marraskuu% \or joulukuu% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishMonthname} % As above but capitalize. % \begin{macrocode} \newcommand*{\DTMfinnishMonthname}[1]{% % \end{macrocode} % v1.1 separated partitive case from month names %\changes{1.1}{2016-03-29}{fixed} % \begin{macrocode} \ifcase#1 \or Tammikuu% \or Helmikuu% \or Maaliskuu% \or Huhtikuu% \or Toukokuu% \or Kes\protect\"akuu% \or Hein\protect\"akuu% \or Elokuu% \or Syyskuu% \or Lokakuu% \or Marraskuu% \or Joulukuu% \fi } % \end{macrocode} %\end{macro} % % Added support for abbreviations in v1.1. %\begin{macro}{\DTMfinnishshortmonthname} % Abbreviated Finnish month names. % \begin{macrocode} \newcommand*{\DTMfinnishshortmonthname}[1]{% % \end{macrocode} %\changes{1.1}{2016-03-29}{new} % \begin{macrocode} \ifcase#1 \or tammi% \or helmi% \or maalis% \or huhti% \or touko% \or kes\protect\"a% \or hein\protect\"a% \or elo% \or syys% \or loka% \or marras% \or joulu% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishshortMonthname} % As above but capitalize. % \begin{macrocode} \newcommand*{\DTMfinnishshortMonthname}[1]{% % \end{macrocode} %\changes{1.1}{2016-03-29}{new} % \begin{macrocode} \ifcase#1 \or Tammi% \or Helmi% \or Maalis% \or Huhti% \or Touko% \or Kes\protect\"a% \or Hein\protect\"a% \or Elo% \or Syys% \or Loka% \or Marras% \or Joulu% \fi } % \end{macrocode} %\end{macro} % %Added support for day of week names in v1.1. %\begin{macro}{\DTMfinnishweekdayname} % Finnish day of week names. % \begin{macrocode} \newcommand*{\DTMfinnishweekdayname}[1]{% % \end{macrocode} %\changes{1.1}{2016-03-29}{new} % \begin{macrocode} \ifcase#1 maanantai% \or tiistai% \or keskiviikko% \or torstai% \or perjantai% \or lauantai% \or sunnuntai% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishWeekdayname} % As above but capitalize. % \begin{macrocode} \newcommand*{\DTMfinnishWeekdayname}[1]{% % \end{macrocode} %\changes{1.1}{2016-03-29}{new} % \begin{macrocode} \ifcase#1 Maanantai% \or Tiistai% \or Keskiviikko% \or Torstai% \or Perjantai% \or Lauantai% \or Sunnuntai% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishshortweekdayname} % Finnish abbreviated day of week names. % \begin{macrocode} \newcommand*{\DTMfinnishshortweekdayname}[1]{% % \end{macrocode} %\changes{1.1}{2016-03-29}{new} % \begin{macrocode} \ifcase#1 ma% \or ti% \or ke% \or to% \or pe% \or la% \or su% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishshortWeekdayname} % As above but capitalize. % \begin{macrocode} \newcommand*{\DTMfinnishshortWeekdayname}[1]{% % \end{macrocode} %\changes{1.1}{2016-03-29}{new} % \begin{macrocode} \ifcase#1 Ma% \or Ti% \or Ke% \or To% \or Pe% \or La% \or Su% \fi } % \end{macrocode} %\end{macro} % %\iffalse % \begin{macrocode} % % \end{macrocode} %\fi % %\subsection{Main Finnish Module (\texttt{datetime2-finnish.ldf})} %\changes{1.0}{2015-03-30}{Initial release} %\changes{1.1}{2016-03-29}{separated partitive case from month names % and added support for abbreviations and day of week} % %\iffalse % \begin{macrocode} %<*datetime2-finnish.ldf> % \end{macrocode} %\fi % % Identify Module % \begin{macrocode} \ProvidesDateTimeModule{finnish}[2018/03/20 v1.2] % \end{macrocode} % Need to find out if XeTeX or LuaTeX are being used. % \begin{macrocode} \RequirePackage{ifxetex,ifluatex} % \end{macrocode} % XeTeX and LuaTeX natively support UTF-8, so load % \texttt{finnish-utf8} if either of those engines are used % otherwise load \texttt{finnish-ascii}. % \begin{macrocode} \ifxetex \RequireDateTimeModule{finnish-utf8} \else \ifluatex \RequireDateTimeModule{finnish-utf8} \else \RequireDateTimeModule{finnish-ascii} \fi \fi % \end{macrocode} % % Define the \texttt{finnish} style. % The time style is the same as the "default" style % provided by \sty{datetime2}. % % Allow the user a way of configuring the "finnish" and % "finnish-numeric" styles. This doesn't use the package wide % separators such as % \cs{dtm@datetimesep} in case other date formats are also required. % %\begin{macro}{\DTMfinnishdowdaysep} %\changes{1.1}{2016-03-29}{new} % The separator between the day of week name and the day of month % number for the text format (v1.1). % \begin{macrocode} \newcommand*{\DTMfinnishdowdaysep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishdaymonthsep} % The separator between the day and month for the text format. % \begin{macrocode} \newcommand*{\DTMfinnishdaymonthsep}{% \DTMtexorpdfstring{\protect~}{\space}% } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishmonthyearsep} % The separator between the month and year for the text format. % \begin{macrocode} \newcommand*{\DTMfinnishmonthyearsep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishdatetimesep} % The separator between the date and time blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMfinnishdatetimesep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishtimezonesep} % The separator between the time and zone blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMfinnishtimezonesep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishdatesep} % The separator for the numeric date format. % \begin{macrocode} \newcommand*{\DTMfinnishdatesep}{.} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMfinnishtimesep} % The separator for the numeric time format. % \begin{macrocode} \newcommand*{\DTMfinnishtimesep}{.} % \end{macrocode} %\end{macro} % %Provide keys that can be used in \cs{DTMlangsetup} to set these %separators. % \begin{macrocode} \DTMdefkey{finnish}{dowdaysep}{\renewcommand*{\DTMfinnishdowdaysep}{#1}} \DTMdefkey{finnish}{daymonthsep}{\renewcommand*{\DTMfinnishdaymonthsep}{#1}} \DTMdefkey{finnish}{monthyearsep}{\renewcommand*{\DTMfinnishmonthyearsep}{#1}} \DTMdefkey{finnish}{datetimesep}{\renewcommand*{\DTMfinnishdatetimesep}{#1}} \DTMdefkey{finnish}{timezonesep}{\renewcommand*{\DTMfinnishtimezonesep}{#1}} \DTMdefkey{finnish}{datesep}{\renewcommand*{\DTMfinnishdatesep}{#1}} \DTMdefkey{finnish}{timesep}{\renewcommand*{\DTMfinnishtimesep}{#1}} % \end{macrocode} % % Define a boolean key that can switch between full and abbreviated % formats for the month and day of week names in the text format (v1.1). %\changes{1.1}{2016-03-29}{separated partitive case from month names % and added support for abbreviations and day of week} % \begin{macrocode} \DTMdefboolkey{finnish}{abbr}[true]{} % \end{macrocode} % The default is the full name. % \begin{macrocode} \DTMsetbool{finnish}{abbr}{false} % \end{macrocode} % % Define a boolean key that determines if the time zone mappings % should be used. % \begin{macrocode} \DTMdefboolkey{finnish}{mapzone}[true]{} % \end{macrocode} % The default is to use mappings. % \begin{macrocode} \DTMsetbool{finnish}{mapzone}{true} % \end{macrocode} % % Define a boolean key that determines if the day of month should be % displayed. % \begin{macrocode} \DTMdefboolkey{finnish}{showdayofmonth}[true]{} % \end{macrocode} % The default is to show the day of month. % \begin{macrocode} \DTMsetbool{finnish}{showdayofmonth}{true} % \end{macrocode} % % Define a boolean key that determines if the year should be % displayed. % \begin{macrocode} \DTMdefboolkey{finnish}{showyear}[true]{} % \end{macrocode} % The default is to show the year. % \begin{macrocode} \DTMsetbool{finnish}{showyear}{true} % \end{macrocode} % % Define the "finnish" style. % \begin{macrocode} \DTMnewstyle {finnish}% label {% date style \renewcommand*\DTMdisplaydate[4]{% % \end{macrocode} % v1.1 separated partitive case from month names % and added support for abbreviations and day of week %\changes{1.1}{2016-03-29}{separated partitive case from month names % and added support for abbreviations and day of week} % \begin{macrocode} \ifDTMshowdow \ifnum##4>-1 \DTMifbool{finnish}{abbr}% {\DTMfinnishshortweekdayname{##4}}% {\DTMfinnishweekdayname{##4}}% \DTMfinnishdowdaysep \fi \fi \DTMifbool{finnish}{showdayofmonth} {% \DTMfinnishordinal{##3}\DTMfinnishdaymonthsep \DTMifbool{finnish}{abbr}% {\DTMfinnishshortmonthname{##2}}% {\DTMfinnishmonthname{##2}ta}% }% {% \DTMifbool{finnish}{abbr}% {\DTMfinnishshortmonthname{##2}}% {\DTMfinnishmonthname{##2}}% }% \DTMifbool{finnish}{showyear}% {% \DTMfinnishmonthyearsep \number##1 % space intended }% {}% }% \renewcommand*\DTMDisplaydate[4]{% % \end{macrocode} % v1.1 separated partitive case from month names % and added support for abbreviations and day of week %\changes{1.1}{2016-03-29}{separated partitive case from month names % and added support for abbreviations and day of week} % \begin{macrocode} \ifDTMshowdow \ifnum##4>-1 \DTMifbool{finnish}{abbr}% {\DTMfinnishshortWeekdayname{##4}}% {\DTMfinnishWeekdayname{##4}}% \DTMfinnishdowdaysep \fi \DTMifbool{finnish}{showdayofmonth} {% \DTMfinnishordinal{##3}\DTMfinnishdaymonthsep \DTMifbool{finnish}{abbr}% {\DTMfinnishshortmonthname{##2}}% {\DTMfinnishmonthname{##2}ta}% }% {% \DTMifbool{finnish}{abbr}% {\DTMfinnishshortmonthname{##2}}% {\DTMfinnishmonthname{##2}}% }% \else \DTMifbool{finnish}{showdayofmonth} {% \DTMfinnishordinal{##3}\DTMfinnishdaymonthsep \DTMifbool{finnish}{abbr}% {\DTMfinnishshortmonthname{##2}}% {\DTMfinnishmonthname{##2}ta}% }% {% \DTMifbool{finnish}{abbr}% {\DTMfinnishshortMonthname{##2}}% {\DTMfinnishMonthname{##2}}% }% \fi \DTMifbool{finnish}{showyear}% {% \DTMfinnishmonthyearsep \number##1 % space intended }% {}% }% }% {% time style \renewcommand*\DTMdisplaytime[3]{% \number##1 \DTMfinnishtimesep\DTMtwodigits{##2}% \ifDTMshowseconds\DTMfinnishtimesep\DTMtwodigits{##3}\fi }% }% {% zone style \DTMresetzones \DTMfinnishzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{finnish}{mapzone}% {\DTMusezonemapordefault{##1}{##2}}% {% \ifnum##1<0\else+\fi\DTMtwodigits{##1}% \ifDTMshowzoneminutes\DTMfinnishtimesep\DTMtwodigits{##2}\fi }% }% }% {% full style \renewcommand*{\DTMdisplay}[9]{% \ifDTMshowdate \DTMdisplaydate{##1}{##2}{##3}{##4}% \DTMfinnishdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMfinnishtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% \renewcommand*{\DTMDisplay}[9]{% \ifDTMshowdate \DTMDisplaydate{##1}{##2}{##3}{##4}% \DTMfinnishdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMfinnishtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% }% % \end{macrocode} % % Define numeric style. % \begin{macrocode} \DTMnewstyle {finnish-numeric}% label {% date style \renewcommand*\DTMdisplaydate[4]{% \DTMifbool{finnish}{showdayofmonth}% {% \number##3 % space intended \DTMfinnishdatesep }% {}% \number##2 % space intended \DTMifbool{finnish}{showyear}% {% \DTMfinnishdatesep \number##1 % space intended }% {}% }% \renewcommand*{\DTMDisplaydate}{\DTMdisplaydate}% }% {% time style \renewcommand*\DTMdisplaytime[3]{% \number##1 \DTMfinnishtimesep\DTMtwodigits{##2}% \ifDTMshowseconds\DTMfinnishtimesep\DTMtwodigits{##3}\fi }% }% {% zone style \DTMresetzones \DTMfinnishzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{finnish}{mapzone}% {\DTMusezonemapordefault{##1}{##2}}% {% \ifnum##1<0\else+\fi\DTMtwodigits{##1}% \ifDTMshowzoneminutes\DTMfinnishtimesep\DTMtwodigits{##2}\fi }% }% }% {% full style \renewcommand*{\DTMdisplay}[9]{% \ifDTMshowdate \DTMdisplaydate{##1}{##2}{##3}{##4}% \DTMfinnishdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMfinnishtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% \renewcommand*{\DTMDisplay}{\DTMdisplay}% } % \end{macrocode} % %\begin{macro}{\DTMfinnishzonemaps} % The time zone mappings are set through this command, which can be % redefined if extra mappings are required or mappings need to be % removed. % \begin{macrocode} \newcommand*{\DTMfinnishzonemaps}{% \DTMdefzonemap{02}{00}{EET}% \DTMdefzonemap{03}{00}{EEST}% } % \end{macrocode} %\end{macro} % Switch style according to the \opt{useregional} setting. % \begin{macrocode} \DTMifcaseregional {}% do nothing {\DTMsetstyle{finnish}} {\DTMsetstyle{finnish-numeric}} % \end{macrocode} % % Redefine \cs{datefinnish} (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.) %\changes{1.2}{2018-03-20}{fixed a bug with unwanted space} % \begin{macrocode} \ifcsundef{date\CurrentTrackedDialect} {% \ifundef\datefinnish {% do nothing }% {% \def\datefinnish{% \DTMifcaseregional {}% do nothing {\DTMsetstyle{finnish}}% {\DTMsetstyle{finnish-numeric}}% }% }% }% {% \csdef{date\CurrentTrackedDialect}{% \DTMifcaseregional {}% do nothing {\DTMsetstyle{finnish}}% {\DTMsetstyle{finnish-numeric}}% }% }% % \end{macrocode} %\iffalse % \begin{macrocode} % % \end{macrocode} %\fi %\Finale \endinput