在Linux中有非常棒的命令 date ,可以使用这样的方式:
# Get some cool date in relation to systems date:
date -d "last Sunday -7 days"
Sun Sep 15 00:00:00 PDT 2013
# Set systems date:
date --set="2013-03-04"
Mon Mar 4 00:00:00 PST 2013
基本上我希望能够像这样运行这个命令:
date --date="last Sunday -7 days" +%Y-%m-%d
2013-09-15
但不是与今天的系统日期相关,而是与字符串形式的另一个计算(例如“2013-09-01”)或其他东西产生的某个日期有关。
请帮我弄清楚如何做到这一点。
答案 0 :(得分:2)
使用功能:
function get_last_day {
local date=$1 day=$2 format=$3 a b i
for (( i = 0; i <= 6; ++i )); do
read -r a b < <(exec date -d "$date - $i days" "+%a $format")
if [[ $a == "$day" ]]; then
echo "$b"
return
fi
done
}
get_last_day '2013-09-18' Sun '%Y-%m-%d'
输出:
2013-09-15