引用除 \today 之外的日期

引用除 \today 之外的日期

是否有一个包允许人们以以下方式处理日期:就像\date显示今天的日期一样,我想要一个命令来将文档的日期定为从今天起 7 天。

另外,由于我想将其用作模板,所以我不想自己手动输入日期。可以吗?

答案1

请参阅 datenumber 和 advdate 包(以及 datetime 包以了解格式选项)。

编辑:添加了一些小例子,基本上是从 datenumber 文档中窃取的。

\documentclass{article}

\usepackage{datenumber}

\begin{document}

\setdatetoday
\addtocounter{datenumber}{7}
\setdatebynumber{\thedatenumber}

Today is \today, 7 days from now it's \datedate.

\end{document}

答案2

\documentclass{article}
\makeatletter
\def\dayinmonth#1{%
  \ifcase#1 31\or28\or31\or30\or31\or30
            \or31\or31\or30\or31\or30\or31\fi}
\newcommand\Today[1][0]{%
  \advance\day by #1
  \edef\DiM{\dayinmonth{\the\month}}
  \ifnum\day>\DiM 
    \day=\numexpr \the\day-\DiM\relax 
    \advance\month\@ne
  \fi  
  \today}
\makeatother

\begin{document}

\today -- \Today[30]

\end{document}

如果增加月份为 13,也可以测试年份

答案3

也许值得展示一个使用advdateVillemoes 提到的包的示例,因为它有一个针对此问题的单一命令解决方案,\DayAfter[n]它打印日期n天前的数据,\today退出时保持不变。因此,对于未来 7 天的数据:

\documentclass{article}
\usepackage{advdate}
\begin{document}

\today\\
\DayAfter[7]\\
\today\\

\end{document}

给出

     2011 年 8 月 2 日
  2011 年 8 月 9 日
  2011 年 8 月 2 日

advdate包还提供了单独的宏,\AdvanceDate用于将的值更改\today为未来几天,以及\SaveDate保存\SetDate和设置用于的当前值\todaytexdoc advdate像往常一样,提供包中这些宏和其他宏的完整详细信息。

相关内容