如何减去日期

How to subtract date

我想从参考日期中减去每周的日期。

我尝试遵循 shell 脚本

weeknumber = 10
Day = "2020/12/1"
    for ((j=0; j<$weeknumber; j++))
        calcDay="`date -d "$Day -$j weeks" +%Y-%m-%d`"
        echo $calcDay
    done

但它没有 return 任何一天。 我想要的结果如下

2020/12/1
2020/11/25
2020/11/18
2020/11/11
.
.
.
.

有什么好的方法可以实现吗?

如果有人有意见,请告诉我

谢谢

首先,如果您使用的是 bash,那么您的 for 循环语法是错误的。正确的语法如下。

for <condition>;
do
<steps to execute>
done

您考虑如下重写您的代码。

weeknumber=10
Day="2020/12/1"

for ((j=0; j<$weeknumber; j++));
do
calcDay="`date -d "$Day -$j weeks" +%Y-%m-%d`"
echo $calcDay
done

注意:如果您希望日期格式为 2020/12/1,请考虑将日期格式提及为“%Y/%m/%d”而不是“%Y-%m-%d

设置变量时不能有空格,注意for循环的语法

weeknumber=10
Day="2020/12/1"
for ((j=0; j<$weeknumber; j++))
do
        calcDay="`date -d "$Day -$j weeks" +%Y-%m-%d`"
        echo $calcDay
done

给予

2020-12-01
2020-11-24
2020-11-17
2020-11-10
2020-11-03
2020-10-27
2020-10-20
2020-10-13
2020-10-06
2020-09-29