日期计算:加 n 天

日期计算:加 n 天

继续主题:将(n)天添加到变量 date 中

但我想使用 ShootDate 之类的变量和其他格式:

2019 年 10 月 26 日 + 15

2019 年 11 月 14 日 + 30

2020 年 5 月 3 日 + 45

请帮助宏。

非常感谢

最少编码:

 \documentclass[10p]{article}
    \usepackage[calc,datesep=/]{datetime2}
     \DTMsavedate{ShootDate}{2016-05-20}
    \newcommand{\PaymentTurnAroundDays}{45}
    \newcount\daycount
    \newcommand{\dueDate}[1]{%
        \DTMsaveddateoffsettojulianday{ShootDate}{#1}\daycount
       \DTMsavejulianday{ShootDate}{\number\daycount}
       \DTMusedate{ShootDate}
    }

    \begin{document}

    Payment will be made by \dueDate{\PaymentTurnAroundDays} (within {\PaymentTurnAroundDays} of the day of the event(s)).

26/10/2019 + 15 day = ?

14/11/2019 + 30 day = ?

05/03/2020 + 45 day = ?
    \end{document}

答案1

最好猜测一下你想要什么:

\documentclass[10pt]{article}
\usepackage[calc,datesep=/]{datetime2}
\newcount\daycount
\newcommand{\DueDate}[2]{%
  \DTMsavedate{ShootDate}{#1}%
  \DTMsaveddateoffsettojulianday{ShootDate}{#2}\daycount
  \DTMsavejulianday{ShootDate}{\number\daycount}%
  \DTMusedate{ShootDate}%
}

\begin{document}

26/10/2019 + 15 day = \DueDate{2019-10-26}{15}

14/11/2019 + 30 day = \DueDate{2019-11-14}{30}

05/03/2020 + 45 day = \DueDate{2020-03-05}{45}
\end{document}

输出

请注意,这不包括任何变量。

带有正斜杠的反转日期的快速版本。

请注意,我不推荐这样做。我会坚持使用 ISO 格式进行输入。

买者自负 ...

\documentclass[10pt]{article}
\usepackage[calc,datesep=/]{datetime2}
\newcount\daycount
\makeatletter
\newcommand{\DueDate}[2]{%
  \edef\tempa{\expandafter\date@aux#1\@nil}%
  \DTMsavedate{ShootDate}{\tempa}%
  \DTMsaveddateoffsettojulianday{ShootDate}{#2}\daycount
  \DTMsavejulianday{ShootDate}{\number\daycount}%
  \DTMusedate{ShootDate}%
}
\newcommand*\dateaux{}
\def\date@aux#1/#2/#3\@nil{#3-#2-#1}
\makeatother
\begin{document}

26/10/2019 + 15 day = \DueDate{26/10/2019}{15}

14/11/2019 + 30 day = \DueDate{14/11/2019}{30}

05/03/2020 + 45 day = \DueDate{05/03/2020}{45}
\end{document}

产生与上面相同的输出。请注意,如果您输入的内容与指定格式不匹配,您将收到无意义的错误消息。

相关内容