datetime: Datum ohne Jahr

datetime: Datum ohne Jahr

Diese Frage ähneltDatum ohne Jahr formatieren, aber ich kann die Antworten nicht ableiten. Ich möchte das Jahr in einem Datum löschen,

\documentclass{article}
\usepackage[spanish,mexico]{babel}
\usepackage{datetime}
\begin{document}
I have: \today
I want: 15 de diciembre
I have: \longdate\today
I want: lunes 15 de diciembre
\end{document}

da ich Babel-Spanisch verwende, reicht es in dieser Sprache aus, kann aber in anderen Sprachen für andere Leute nützlich sein.

Antwort1

datetimebietet den \newdateformatBefehl genau für solche Fälle:

\documentclass{article}
\usepackage[spanish,mexico]{babel}
\usepackage{datetime}
\newdateformat{myshort}{%
    \THEDAY\ de \monthname[\THEMONTH]%
    }
\newdateformat{mylong}{%
    \dayofweekname{\THEDAY}{\THEMONTH}{\THEYEAR} 
    \THEDAY\ de \monthname[\THEMONTH]%
    }
\begin{document}
I have: \today

I now have: \myshort\today

I want: 15 de diciembre

I have: \longdate\today

I now have: \mylong\today

I want: lunes 15 de diciembre
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Ich spreche kein Spanisch, aber hier geht es lediglich um ein Update von \formatdate. Unten habe ich angegeben \noyeardate, wie das Jahr aus der Ausgabe entfernt wird. Außerdem wird dedem Monatsnamen Folgendes vorangestellt:

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage[spanish,mexico]{babel}
\usepackage{datetime}

\makeatletter
\let\oldmonthname\monthname
\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}%
  \renewcommand{\monthname}{de \oldmonthname}%
}
\DeclareRobustCommand*{\noyeardate}{%
  \renewcommand*{\formatdate}[3]{%
    \@day=##1\relax\@month=##2\relax\@year=##2\relax
    \number\@day~de \monthname[\@month]}%
  }
\makeatother

\begin{document}

\noyeardate
I have: \today

I want: 15 de diciembre

\bigskip

I have: \longdate\today

I want: lunes 15 de diciembre

\end{document}

verwandte Informationen