如何加减小时和分钟

如何加减小时和分钟

有没有可以添加和减去小时和分钟的包。我的意思是,我想\newcommand{\time}{10:00}在文档中定义和使用它

\time + 00:20 = 10:20
\time + 01:30 = 11:30

我的想法是修改命令\time,这样文档中的所有其他时间都会被修改。

答案1

在下面的代码中,宏\setcurrtime设置当前时间,以便稍后使用\currtime

该宏\currtime打印当前时间;如果给出了一个可选参数,它将偏移当前时间(偏移量假定为正数)。

\documentclass{article}

\makeatletter
\newcommand{\setcurrtime}[1]{%
  \set@time\curr@hour\curr@mins#1\@nil
}
\def\set@time#1#2#3:#4\@nil{%
  \def#1{#3}\def#2{#4}%
}

\newcommand{\currtime}[1][00:00]{%
  \begingroup
  \set@time\new@hour\new@mins#1\@nil
  \count\z@=\curr@mins\relax
  \count\tw@=\curr@hour\relax
  \advance\count\z@\new@mins\relax
  \advance\count\tw@\new@hour\relax
  \ifnum\count\z@>59
    \advance\count\z@-60
    \advance\count\tw@\@ne
  \fi
  % we have to use \count\z@ and \count\tw@ before
  % ending the group and printing the result
  \edef\x{\endgroup\two@digits{\count\tw@}:\two@digits{\count\z@}}\x
}
\makeatother

\begin{document}

\setcurrtime{10:00}

\currtime

\currtime[00:20]

\currtime[01:30]

\setcurrtime{14:54}

\currtime[00:05]

\currtime[00:06]

\currtime[00:07]

\end{document}

仅作为例子,我使用了\setcurrtime两次,以表明极限情况得到正确处理。

在此处输入图片描述

相关内容