Esta pregunta es similar aFormatear fecha sin año, pero no puedo deducir las respuestas. Me gustaría borrar el año en una fecha,
\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}
Como uso babel-spanish, es suficiente en este idioma, pero en otro idioma puede ser útil para otras personas.
Respuesta1
datetime
proporciona el \newdateformat
comando solo para esos casos:
\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}
Respuesta2
No hablo ningún tipo de español, pero esto simplemente gira en torno a una actualización de \formatdate
. A continuación proporcioné \noyeardate
lo que elimina la salida del año. Además, antepone de
al nombre del mes:
\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}