在计算日期时需要unix shell脚本的帮助。
我将获取日期值(例如:20150908)作为参数,现在我需要计算7天前的日期(20150908 -7)。
如下所示:
date = 20150908
lastweek_date = 20150908 - 7 --->这应输出为20150901
有人可以帮我解决这个问题。
由于
答案 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"