Unix Shell脚本 - 根据给定日期计算上周日期

时间:2015-10-07 07:23:32

标签: shell


 在计算日期时需要unix shell脚本的帮助。

我将获取日期值(例如:20150908)作为参数,现在我需要计算7天前的日期(20150908 -7)。

如下所示: date = 20150908
lastweek_date = 20150908 - 7 --->这应输出为20150901

有人可以帮我解决这个问题。

由于

2 个答案:

答案 0 :(得分:2)

使用GNU日期,我们可以减去一周:

$ date -d "20150908 - 1 week" '+%Y%m%d'
20150901

或者,我们可以减去7天:

$ date -d "20150908 - 7 days" '+%Y%m%d'
20150901

并且,为了证明这适用于月份边界:

$ date -d "20150901 - 1 week" '+%Y%m%d'
20150825

此解决方案 OSX / BSD兼容。

答案 1 :(得分:-1)

一周是604800秒,所以要以便携式和POSIX兼容的方式获取自纪元以来的秒数并使用它来计算1周前的日期,请执行以下操作:

PRESENT=$( date +%s )

WEEKAGO=$(( PRESENT - 604800 ))

printf "%s\n" "$WEEKAGO"