脚本 shell 如何向给定日期添加 x 分钟?

sla*_*ama 4 bash shell

我需要给给定日期添加 10 分钟:

givenDate = 2016-10-25 18:22:37
Run Code Online (Sandbox Code Playgroud)

执行时:

newDate=$(date +'%Y-%m-%d %T' --date="$givenDate + 10 minutes")
echo $newDate
Run Code Online (Sandbox Code Playgroud)

我得到:

2016-10-25 00:10:00

代替

2016-10-25 18:32:37

第二个问题:如何对分钟数进行四舍五入,以便我可以根据示例获得这些结果:

18:08 -> 18:10

18:32 -> 18:40

18:46 -> 18:50

18:55 -> 19:00

谢谢。

Jea*_*bre 5

对于第一个问题,+像这样删除:

date +'%Y-%m-%d %T' --date="$givenDate 10 minutes"
Run Code Online (Sandbox Code Playgroud)

对于第二个问题,我们必须提取当前分钟的最后一位数字,然后使用模 5 计算要添加的分钟数以使其四舍五入:

givenDate="2016-10-25 18:22:37"

minute=$(echo $givenDate | sed 's/.*\([0-9]\):..$/\1/')
rounder=$((5 - minute % 5))
date +'%Y-%m-%d %T' --date="$givenDate $rounder minutes"
Run Code Online (Sandbox Code Playgroud)

请注意,尚未考虑秒数