我搜索一个给出格式化时间的命令,就像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}