gpt4 book ai didi

bash - 如何在 Bash 脚本中获取上个月的第一个和最后一个日期?

转载 作者:行者123 更新时间:2023-11-29 08:47:27 25 4
gpt4 key购买 nike

我已安排一个 Bash 脚本在该月的 1 日运行,但我需要在其中创建 2 个变量,其中包含上个月的第一个日期和最后一个日期,无论这些日期是什么。

是否可以只使用 Bash 来做到这一点?

最佳答案

与某些答案不同,这适用于每月的 31 日和任何其他日期。我用它来输出 unix 时间戳,但输出格式很容易调整。

first=$(date --date="$(date +'%Y-%m-01') - 1 month" +%s)
last=$(date --date="$(date +'%Y-%m-01') - 1 second" +%s)

示例(今天的日期是 2019 年 2 月 14 日):

echo $first $last

1546300800 1548979199

要以其他格式输出,更改 final +%s为不同的格式,例如 +%Y-%m-%d或在您的语言环境中省略默认格式。

如果需要,您还可以像这样备份任意数量的月份:

    # variable must be >= 1
monthsago=23
date --date="$(date +'%Y-%m-01') - ${monthsago} month"
date --date="$(date +'%Y-%m-01') - $(( ${monthsago} - 1 )) month - 1 second"

示例输出(今天的日期是 2019 年 2 月 15 日):

2017 年 3 月 1 日星期三 00:00:00
2017 年 3 月 31 日星期五 23:59:59

关于bash - 如何在 Bash 脚本中获取上个月的第一个和最后一个日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27920201/

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