我怎样才能从时间中得出总分钟数?

我怎样才能从时间中得出总分钟数?

当我输入命令时,我的系统显示的时间是 10:42 date +%R。我需要记录总时间的分钟数。这意味着 642 分钟。是否有任何命令或 shell 脚本可以显示总时间(以分钟为单位)?

答案1

为了获取一天的总分钟数,我将使用以下命令:

$ date "+%H*60+%M" | bc

例子:

$ date +%R
09:30
$ date "+%H*60+%M" | bc
570

诀窍是格式化date输出,以便bc解释和计算公式。

答案2

只需 bash:

IFS=: read hour min < <(date +%R)
echo $(( 60 * 10#$hour + 10#$min ))

强制将两个变量都视为十进制数,以避免 shell 抛出无效八进制数的错误08,并且09

答案3

date +%R | awk -F ":" '{print ($1 * 60) + $2}'

或者

 echo $((($(date +%l) * 60 ) + $(date +%M)))

date +%l将得到小时数,乘以 60 并加上分钟数date +%M

答案4

您不需要使用 IFS,您可以这样做:

date=$(date +'%l:%M')
read H M <<< ${date//[-: ]/ }
echo  "Total minutes: $(($H * 60 + $M))"

输出为:

Total minutes: 593

相关内容