通过提供秒数从 datetime2 获取 HH:MM:SS

通过提供秒数从 datetime2 获取 HH:MM:SS

我搜索一个给出格式化时间的命令,就像HH:MM:SS我给出秒数一样。

例如,如果搜索命令是\formatetime{},它应该给出以下结果:

\formatetime{50}   % should print “50”
\formatetime{60}   % should print “1:00”
\formatetime{3661} % should print “1:01:01”

可以这样做吗?

答案1

我借助 进行了一些计算,做到了这一点intcalc

\documentclass{article}
\usepackage{intcalc}

\newcommand\formatetime[1]{%
    \def\ss{\intcalcMod{#1}{60}}%
    \def\mm{\intcalcMod{\intcalcDiv{#1}{60}}{60}}%
    \def\hh{\intcalcDiv{#1}{3600}}%
    \ifnum\hh=0\else\hh:\fi%
    \ifnum\mm=0%
        \ifnum\hh=0\else{00:}\fi
    \else
        \ifnum\mm<10%
            \ifnum\hh>0%
                {0\mm}%
            \else
                {\mm}%
            \fi%
        \else\mm%
        \fi:%
    \fi%
    \ifnum\ss<10{0}\fi\ss%
}

\begin{document}
    \formatetime{50}   % should print “50”
    \formatetime{60}   % should print “1:00”
    \formatetime{3661} % should print “1:01:01”
\end{document}

相关内容