gpt4 book ai didi

linux - 计算5分钟上限

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:51 28 4
gpt4 key购买 nike

操作系统:Red Hat Enterprise Linux Server 7.2 (Maipo)

我想将时间四舍五入到最接近的 5 分钟,只向上,不向下,例如:

08:09:15 应该是 08:10:00

08:11:26 应该是 08:15:00

08:17:58 应该是 08:20:00

我一直在尝试:

(date -d @$(( (($(date +%s) + 150) / 300) * 300)) "+%H:%M:%S")

这将使时间四舍五入但也会下降(08:11:18 将导致 08:10:00 而不是 08:15:00)

知道如何实现吗?

最佳答案

您可以使用此效用函数进行汇总:

roundDt() {
local n=300
local str="$1"
date -d @$(( ($(date -d "$str" '+%s') + $n)/$n * $n)) '+%H:%M:%S'
}

然后将此函数调用为:

roundDt '08:09:15'
08:10:00

roundDt '08:11:26'
08:15:00

roundDt '08:17:58'
08:20:00

要跟踪此函数的计算方式,请在导出后使用 -x(跟踪模式):

export -f roundDt

bash -cx "roundDt '08:11:26'"

+ roundDt 08:11:26
+ typeset n=300
+ typeset str=08:11:26
++ date -d 08:11:26 +%s
+ date -d @1535631300 +%H:%M:%S
08:15:00

关于linux - 计算5分钟上限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52090575/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com