gpt4 book ai didi

Linux date 命令,找到下一个小时的秒数

转载 作者:IT王子 更新时间:2023-10-29 00:04:46 32 4
gpt4 key购买 nike

如何使用日期找到下一个小时的秒数?我知道我能做到

date -d "next hour"

但这只会使当前时间增加 1 小时。我希望它显示下一个完整小时的秒数。例如,如果当前时间是 9:39am 我想找到到 10am

的秒数

最佳答案

现在的纪元时间戳是

now=$(date '+%s')

下一个小时是

next=$(date -d $(date -d 'next hour' '+%H:00:00') '+%s')

到下一个小时的秒数是

echo $(( next - now ))

对于连续的解决方案,使用函数:

now() { date +%s; }
next() { date -d $(date -d "next ${1- hour}" '+%H:00:00') '+%s'; }

现在你有

echo $(( $(next) - $(now) ))

甚至

echo $(( $(next day) - $(now) ))

另一种方式

另一种稍微数学化的方法仍然使用纪元时间戳。我们知道它是从一个小时开始的,所以时间戳 mod 3600 仅在该小时等于零。因此

$(( $(date +%s) % 3600 ))

是自上一小时以来的秒数,

$(( 3600 - $(date +%s) % 3600 ))

是到下一个秒数。

关于Linux date 命令,找到下一个小时的秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27595758/

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