# Capitalization of datetime format

In languages like dutch, the first letter of the names of days and months are not capitalized unless they occur as the first character of a sentence. So I added the following code in the preamble of my latex file to cope with the general rule:

\newcommand*{\dayofweeknameiddutch}[1]{%
\ifcase#1\relax
\or zondag%
\or maandag%
\or dinsdag%
\or woensdag%
\or donderdag%
\or vrijdag%
\or zaterdag%
\fi}

\newdateformat{dutchformat}{%
\dayofweekname{\THEDAY}{\THEMONTH}{\THEYEAR}~\THEDAY~\monthname[\THEMONTH]~\THEYEAR}


Now you can use:

\selectlanguage{dutch}
\dutchformat\formatdate{DAY}{MONTH}{YEAR}


in the document, but you cannot capitalize the first character that comes out of this call, for the cases in which this call comes as the beginning of the sentence. I tried using the mfirstuc and stringstrings package but nothing seems to work since both packages expect an expanded string as their argument.

See the following minimal working example:

\documentclass{minimal}
\usepackage{inputenc}

\usepackage[T1]{fontenc}

\usepackage[dutch]{babel}
\usepackage{datetime}

\newcommand*{\dayofweeknameiddutch}[1]{%
\ifcase#1\relax
\or zondag%
\or maandag%
\or dinsdag%
\or woensdag%
\or donderdag%
\or vrijdag%
\or zaterdag%
\fi}

\newdateformat{dutchformat}{%
\dayofweekname{\THEDAY}{\THEMONTH}{\THEYEAR}~\THEDAY~\monthname[\THEMONTH]~\THEYEAR}

\begin{document}
\noindent In this sentence the format of the date
\dutchformat\formatdate{1}{1}{2013}'' is displayed correctly
since it occurs in the middle of the sentence. But when I start
a sentence with \verb+\dutchformat\formatdate{1}{1}{2013}+\verb
I want the first character of the expanded string i.e.\
dinsdag'' to be capitalized like Dinsdag''. The commands
\verb+\newdateformat+\verb and \verb+\formatdate+\verb come
from the \texttt{datetime} package.

\end{document}


So this problem boils down to expansion of the of the formatdate call. Any ideas?

-
Where do the commands \newdateformat and \formatdate come from? –  Harald Hanche-Olsen Oct 18 '13 at 9:46
Could you please post a full example, starting with \documentclass? –  Steven B. Segletes Oct 18 '13 at 10:06

I create two commands \dutchformat and \Dutchformat for the capitalized version.

\documentclass{minimal}
\usepackage{inputenc}

\usepackage[T1]{fontenc}

\usepackage[dutch]{babel}
\usepackage{datetime}

\newdateformat{dutchformat}{%
\dayofweekname{\THEDAY}{\THEMONTH}{\THEYEAR}~\THEDAY~\monthname[\THEMONTH]~\THEYEAR}

\let\SAVEdutchformat\dutchformat

\newcommand*{\dayofweeknameiddutch}[1]{}%

\renewcommand\dutchformat{%
\renewcommand*{\dayofweeknameiddutch}[1]{%
\ifcase##1\relax
\or zondag%
\or maandag%
\or dinsdag%
\or woensdag%
\or donderdag%
\or vrijdag%
\or zaterdag%
\fi}%
\SAVEdutchformat}

\newcommand\Dutchformat{%
\renewcommand*{\dayofweeknameiddutch}[1]{%
\ifcase##1\relax
\or Zondag%
\or Maandag%
\or Dinsdag%
\or Woensdag%
\or Donderdag%
\or Vrijdag%
\or Zaterdag%
\fi}%
\SAVEdutchformat}
\begin{document}
\dutchformat\formatdate{1}{1}{2013}

\Dutchformat\formatdate{1}{1}{2013}
\end{document}


-
Tnx, indeed an elegant solution to my problem! –  Pieter Stroobants Oct 18 '13 at 15:01