我正在构建一个 LaTeX 文档,帮助我为客户制定报价。由于我决定提供每月定期付款,因此我希望自动从特定日期开始计算付款日期。例如,假设您有:
\today{}
那么我需要:
\today
+30 天\today
+60天\today
+180 天
等等...
那可能吗?
编辑:我最终使用了该包,advdate
因为我获得了更紧凑的结果:
% Payment starts in 4 months.
\AdvMonth{4}
% 1 chunk per month -> due date:
\begin{enumerate*}
\AdvMonth{1} \item due date: \textbf{\today}
...
\end{enumerate*}
答案1
查看日期包裹。
编辑六年后,我终于有时间添加一个例子。它实现了软件包中说明的功能。
\AdvanceDate
将日期提前指定的天数 [方括号中的参数,默认为 1] 并将结果设置为\today
有两点需要注意:
例如,要提前 30 天,语法是
\AdvanceDate[30]
。该包有效地用作
\today
变量。这意味着如果您要记录相对于今天的几个日期,则需要逐步推进。如果您想要 30 天,然后是 60 天,则需要调用\AdvanceDate[30]
两次。当然,TeX 的作用域规则仍然有效。因此,如果您
\today
在一个组中前进,则更改将在组结束时结束。因此,如果您制作一个表格,则每个单元格末尾的增量都会被遗忘。
这是一个示例文档,显示了这两者:
\documentclass{article}
\usepackage{advdate}
\begin{document}
Today is: \today
Tomorrow is: \DayAfter
30 days from today is \AdvanceDate[30]\today.
60 days from today is \AdvanceDate[30]\today.
180 days from today is \AdvanceDate[120]\today.
\AdvanceDate[-180]
\bigskip
\begin{tabular}{|cc|}\hline
Relative description & Date \\\hline
today & \today \\
tomorrow & \DayAfter \\
30 days from today & \AdvanceDate[30]\today\\
60 days from today & \AdvanceDate[60]\today\\
180 days from today & \AdvanceDate[180]\today\\\hline
\end{tabular}
\end{document}
答案2
这是可能的日期编号包裹
\documentclass{article}
\usepackage{datenumber}
\begin{document}
\setdatetoday
\addtocounter{datenumber}{30}%
\setdatebynumber{\thedatenumber}%
In 30 days is \datedate
\setdatetoday
\addtocounter{datenumber}{60}%
\setdatebynumber{\thedatenumber}%
In 60 days is \datedate
\setdatetoday
\addtocounter{datenumber}{90}%
\setdatebynumber{\thedatenumber}%
In 90 days is \datedate
\end{document}
其结果是:
答案3
这是可能的datetime2
包裹:
\documentclass[italian]{article}
\usepackage[calc,useregional]{datetime2}
\newcount\myct
\newcount\datecount
\newcommand{\myday}[1]{%
\DTMsavenow{mydate}
\DTMsaveddateoffsettojulianday{mydate}{#1}{\myct}
\DTMsavejulianday{mydate}{\number\myct}
\DTMusedate{mydate}
}
\begin{document}
\today~ is the day
In 10 days is \myday{10}
In 30 days is \myday{30}
In 90 days is \myday{90}
\end{document}