我有一个函数,受hms的启发,但我希望将其扩展到包括处理和显示天数。
我已经开始编辑脚本,但很快意识到我在处理逻辑方面超出了我的深度,几个小时跑到几天,反之亦然......
以下是我到目前为止所拥有的:
#!/bin/bash
rendertimer(){
# convert seconds to Days, Hours, Minutes, Seconds
# thanks to https://www.shellscript.sh/tips/hms/
local seconds D H M S MM D_TAG H_TAG M_TAG S_TAG
seconds=${1:-0}
S=$((seconds%60))
MM=$((seconds/60)) # total number of minutes
M=$((MM%60))
H=$((MM/60))
D=$((H/24))
# set up "x day(s), x hour(s), x minute(s) and x second(s)" format
[ "$D" -eq "1" ] && D_TAG="day" || D_TAG="days"
[ "$H" -eq "1" ] && H_TAG="hour" || H_TAG="hours"
[ "$M" -eq "1" ] && M_TAG="minute" || M_TAG="minutes"
[ "$S" -eq "1" ] && S_TAG="second" || S_TAG="seconds"
# logic for handling display
[ "$D" -gt "0" ] && printf "%d %s " $D "${D_TAG},"
[ "$H" -gt "0" ] && printf "%d %s " $H "${H_TAG},"
[ "$seconds" -ge "60" ] && printf "%d %s " $M "${M_TAG} and"
printf "%d %s\n" $S "${S_TAG}"
}
duration=${1}
howlong="$(rendertimer $duration)"
echo "That took ${howlong} to run."
349261
秒:“那花了4天1小时1分1秒才运行。”
< code>127932秒:“运行时间为1天11小时32分12秒。”
< code>86400秒:“花了1天时间运行。”
349261
秒:“这花了4天97小时1分1秒才运行。
127932
秒:“运行时间为1天35小时32分12秒。”
86400
秒:“那需要1天24小时0分0秒才能运行。”
有人能帮我弄清楚吗?
感谢@BeardOverflow和@NikolaySidorov,这非常有效:
#!/bin/bash
rendertimer(){
# convert seconds to Days, Hours, Minutes, Seconds
# thanks to Nikolay Sidorov and https://www.shellscript.sh/tips/hms/
local parts seconds D H M S D_TAG H_TAG M_TAG S_TAG
seconds=${1:-0}
# all days
D=$((seconds / 60 / 60 / 24))
# all hours
H=$((seconds / 60 / 60))
H=$((H % 24))
# all minutes
M=$((seconds / 60))
M=$((M % 60))
# all seconds
S=$((seconds % 60))
# set up "x day(s), x hour(s), x minute(s) and x second(s)" language
[ "$D" -eq "1" ] && D_TAG="day" || D_TAG="days"
[ "$H" -eq "1" ] && H_TAG="hour" || H_TAG="hours"
[ "$M" -eq "1" ] && M_TAG="minute" || M_TAG="minutes"
[ "$S" -eq "1" ] && S_TAG="second" || S_TAG="seconds"
# put parts from above that exist into an array for sentence formatting
parts=()
[ "$D" -gt "0" ] && parts+=("$D $D_TAG")
[ "$H" -gt "0" ] && parts+=("$H $H_TAG")
[ "$M" -gt "0" ] && parts+=("$M $M_TAG")
[ "$S" -gt "0" ] && parts+=("$S $S_TAG")
# construct the sentence
result=""
lengthofparts=${#parts[@]}
for (( currentpart = 0; currentpart < lengthofparts; currentpart++ )); do
result+="${parts[$currentpart]}"
# if current part is not the last portion of the sentence, append a comma
[ $currentpart -ne $((lengthofparts-1)) ] && result+=", "
done
echo "$result"
}
duration=$1
howlong="$(rendertimer "${duration}")"
echo "That took ${howlong} to run."
代替
H=$((MM/60))
D=$((H/24))
到
H=$((MM/60%24))
D=$((MM/60/24))
所以,天数是你总时间的商,小时是你总时间的模数。
另外,你的第二个例子是错误的。127932的期望输出是需要1天11小时32分12秒才能运行
问题内容: 这就是我目前所拥有的 我觉得是对的。数小时和数天应该是- 然后- 但是我的时间和日子是不正确的 问题答案: 一种简单的计算时间的方法是使用类似 如果您的天数超过28天,则可以使用此功能,但是如果您的时间为负数,则无法使用。
我试图创建一个基于时间的倒计时钟。它不是基于current_dates。将被拉取的初始时间将来自一个单独的php文件。这将是一个基于浏览器的游戏。当有人点击按钮来启动这个脚本。它将检查是否满足某些要求,如果满足,那么这个脚本将启动。根据对象的级别,它将拉动该进行中级别的初始计时器。希望这有意义。无论如何,我基于我提供的第一个代码的计时器脚本。 此脚本仅占分钟和秒。我对它进行了修改,使其也包括了天和
我是Python新手,遇到了这个问题。我想创建一个程序,用户输入秒数,并将其转换为天、小时、分钟和秒。然而,例如,我希望程序在100000秒内输出1天、3小时、46分钟、40秒。然而,mine也用小数输入计算结果,比如说1.157天,其他类别也一样。任何帮助都将不胜感激,非常感谢。
问题内容: 我在Microsoft SQL Server 2008R2中有一个bigint字段,其中充满了刻度线(单个刻度线代表一百纳秒或一千万分之一秒。在一毫秒内有10,000个刻度。) http://msdn.microsoft.com/zh- CN/library/system.datetime.ticks.aspx 我需要将所有记录的总和转换为Days:Hours:Minutes:Seco
问题内容: 我需要将毫秒值85605304.3587转换为类似0d 18h 21m的值。不知道如何启动它,是否像C#中的SQL中有类似TimeSpan的东西? 问题答案: 您可以显式进行计算。我认为是这样: 注意:某些数据库使用代替。
我有一个观察结果,希望获得吞吐量计算方面的知识,有些时间吞吐量以秒为单位显示,有些时间吞吐量以分钟为单位,有些时间吞吐量以小时为单位,请任何人提供准确答案以计算吞吐量,以及何时在Jmeter摘要报告中以秒、分钟和小时为单位显示吞吐量