shell中日期循环的方式

第一种

# 这里的例子以周为循环
!/bin/bash

begin_date="20160907"
end_date="20170226"

while [ "$begin_date" -le "$end_date" ];
do
    year=${begin_date:0:4}
    week_of_year=$(date -d "$begin_date" +%W)
    echo $year, $week_of_year
    begin_date=$(date -d "${begin_date}+7days" +%Y%m%d)
done

第二种

# 这里的例子每天作为循环,并展示当天的前一天
#!/bin/bash

startDate=20160201
endDate=20160328
startSec=`date -d "$startDate" "+%s"`
endSec=`date -d "$endDate" "+%s"`
for((i=$startSec;i<=$endSec;i+=86400))
do
    current_day=`date -d "@$i" "+%Y%m%d"`
    one_day_ago=`date -d "$current_day yesterday" +%Y%m%d`
    echo "current_day:${current_day}, yesterday:${one_day_ago}"
done
上一篇:MySQL 5.7-11.2.1 Date and Time Data Type Syntax


下一篇:JS-获取时间的方法:近3天,本周,本月,上月