gpt4 book ai didi

linux - bash 按 yyyy-mm-dd 在 N 天内 bash 中 2 个日期之间的差异

转载 作者:太空宇宙 更新时间:2023-11-04 05:07:19 25 4
gpt4 key购买 nike

我在 bash 中编写了一个很长的脚本,不知何故我能够以 yyyy-mm-dd 格式打印 2 个日期。

我的输出类似于 2019-12-30 和 2019-12-21

第一个日期始终是昨天的日期,我的输出不会打印日期函数,它只会打印日期值,所以。我需要告诉 bash 这是一个日期并给我一个天数的差异。

#!/bin/bash
START=$(date --date=yesterday +%F)
END=$(date --date "2 days ago" +%F)
DIFF=$(( $END - $START ))

echo " $DIFF "

它只向我显示 85。我怎样才能得到像“1”这样的天数差异(2天前 - 昨天)

如果有人回答并提供一些解释,我将不胜感激

PS:我不知道 datediff 是否是预制的。 Linux的功能,我的centos 6里没有

最佳答案

扩展我的评论:

查看已接受的答案 Quickly calculate date differences

回答该问题的人编写了一个名为 datediff 的自定义函数:

$ datediff() {
d1=$(date -d "$1" +%s)
d2=$(date -d "$2" +%s)
echo $(( (d1 - d2) / 86400 )) days
}

我们可以使用相同的函数来比较问题中的 2 个日期:

$ START=$(date --date=yesterday +%F)
$ END=$(date --date "2 days ago" +%F)
$ echo "${START} : ${END}"
2019-12-30 : 2019-12-29
$ datediff "${START}" "${END}"
1 days

关于linux - bash 按 yyyy-mm-dd 在 N 天内 bash 中 2 个日期之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59548057/

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