datetime: 연도가 없는 날짜

datetime: 연도가 없는 날짜

이 질문은 다음과 유사합니다.연도 없이 날짜 형식 지정, 하지만 답을 추론할 수는 없습니다. 날짜에서 연도를 삭제하고 싶습니다.

\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}

내가 사용하는 바벨-스페인어는 이 언어에서는 충분하지만 다른 언어에서는 다른 사람들에게 유용할 수 있습니다.

답변1

datetime\newdateformat이러한 경우에 대한 명령을 제공합니다 .

\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}

여기에 이미지 설명을 입력하세요

답변2

나는 어떤 종류의 스페인어도 구사하지 못하지만 이것은 순전히 \formatdate. 아래에서는 \noyeardate출력에서 ​​연도를 제거하는 내용을 제공했습니다 . 또한 de월 이름 앞에 추가됩니다.

여기에 이미지 설명을 입력하세요

\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}

관련 정보