使用bash脚本获取给定输入日期的星期六日期

时间:2018-09-04 14:55:40

标签: bash shell

使用以下命令,它将返回上一个星期六的日期。

date +"%b-%d-%Y" -d "last saturday"
Sep-01-2018

我想将输入日期作为参数传递,它应该在bash脚本中返回最后一个星期六的日期。

Aug-08-2018  -----> Aug-04-2018
Jun-04-2018  -----> Jun-02-2018

1 个答案:

答案 0 :(得分:3)

获取一个负数,该数字将是要减去的天数。我们使用13,因为星期六是6,而6 + 7 = 13。这将使我们提前一周或两周的星期六。然后我们对7做模,以确保它是下一个星期六,然后减去7使其成为最后一个星期六。然后将diff放入日期字符串中:

$ date_str="Aug-08-2018"
$ diff=$(( (13 - $(date +"%u" -d ${date_str})) % 7 - 7))
$ date -d "${date_str} ${diff} days"
Sat Aug  4 00:00:00 EDT 2018