printf "$(( $(date '+%H * 60 + %M') ))\n"
date '+%H * 60 + %M' | bc
date '+%H 60 * %M + p' | dc
以上将给出当天通过的会议记录。
使用上述任何时间输出,我如何从当天的总分钟数(即1440)中减去它以显示当天剩余的分钟数?
答案 0 :(得分:2)
鉴于你的三个范例,那么:
printf "$(( 1440 - ( $(date '+%H * 60 + %M') ) ))\n"
date '+1440 - ( %H * 60 + %M )' | bc
date '+1440 %H 60 * %M + - p' | dc
您并不需要添加所有空格,但您需要添加括号。
答案 1 :(得分:0)
您可以使用以下内容:
minutesElapsed="$(date '+%H * 60 + %M' | bc)"
minutesDay="1440"
minutesLeft="$(($minutesDay-$minutesElapsed))"
输出:
echo "$minutesLeft"
332
简短版本:
echo "$((1440-$(date '+%H * 60 + %M' | bc)))"
答案 2 :(得分:0)
以下计算以分钟为单位的时间戳差异:
printf '%d\n' $(( ( $(date -d 'tomorrow 00:00' '+%s') - $(date '+%s') ) / 60 ))
请注意格式字符串%d\n
的使用。您不应该在printf
的第一个参数中传递数据,因为第一个参数是格式字符串,printf
可能会将某些序列解释为格式说明符({ {1}}作为整数说明符,%d
作为字符串说明符等。)。