如何获取今天星期几的前三个字母?

如何获取今天星期几的前三个字母?

我尝试使用该包datetime2获取今天星期几的完整名称,然后xstring根据需要对其进行修剪。但是当我运行以下代码时,结果根本没有被修剪:

\documentclass{article}

\usepackage[calc]{datetime2}
\usepackage{xstring}

\newcommand{\mytoday}{%
    \DTMcomputedayofweekindex{\DTMtoday}{\todaydowindex}
    \DTMtoday-\StrLeft{\DTMweekdayname{\todaydowindex}}{3}
    }

\title{Example}
\date{\mytoday}

\begin{document}

    \maketitle

\end{document}

我知道它也可以用来完成\ifcase,但我想了解为什么我的代码不起作用并返回这个未修剪的结果。

答案1

datetime2已经有了\DTMshortweekdayname,不需要重新发明轮子。

\documentclass[english]{article}

\usepackage[calc]{datetime2}

\newcommand{\mytoday}{%
    \DTMcomputedayofweekindex{\DTMtoday}{\todaydowindex}%
    \DTMtoday-\DTMshortweekdayname{\todaydowindex}}

\title{Example}
\date{\mytoday}

\begin{document}

    \maketitle

\end{document}

在此处输入图片描述

编辑:另一种方法是,鉴于注释指出该文档实际上是法语的,并且datetime2在这种情况下在星期几中添加了缩写点,这是不受欢迎的。手册中datetime2对月份和星期几名称进行了以下说明:

如果您希望月份名称或星期名称出现在章节标题中,最好使用语言模块提供的可扩展命令,而不是 提供的强大命令datetime2-calc。请记住,您不能在 PDF 书签中使用强大命令,并且此类命令可能会阻止使用 的页面样式的标题中的大小写更改\MakeUppercase

因此,如果您可以指定正在使用的语言,您就可以获得可扩展的星期几名称,并执行您最初打算做的事情。

\documentclass[french]{article}

\usepackage[calc]{datetime2}
\usepackage{xstring}

\newcommand{\myfrenchtoday}{%
  \DTMcomputedayofweekindex{\DTMtoday}{\todaydowindex}%
  % or \DTMfrenchshortWeekdayname
  \DTMtoday-\StrLeft{\DTMfrenchshortweekdayname{\todaydowindex}}{3}}

\title{Example}
\date{\myfrenchtoday}

\begin{document}

\maketitle

\end{document}

在此处输入图片描述

相关内容