版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/51685280
1. 第一种方式
先把日期转换为秒数,对这个秒数进行加减操作(加上或者减去几天的秒数),在转换为日期
-
#! /bin/sh
-
function nextDayOfDay2 {
-
start=$1
-
days=$2
-
# 日期转换为秒数
-
seconds=`date -d $1 +%s`
-
echo "日期秒数 -----> "${seconds}
-
declare -i index
-
index=0
-
while [ ${index} -lt ${days} ]
-
do
-
total_seconds=$((seconds + ${index}*86400))
-
date=`date -d @${total_seconds} +'%Y%m%d'`
-
echo ${index}" ------> "${date}
-
index=${index}+1
-
done
-
}
-
nextDayOfDay2 $1 $2
打印从20160629号开始的连续5天日期:
-
xiaosi@Qunar:~/company/sh$ bash date.sh 20160629 5
-
日期秒数 -----> 1467129600
-
0 ------> 20160629
-
1 ------> 20160630
-
2 ------> 20160701
-
3 ------> 20160702
-
4 ------> 20160703
2. 第二种方式
-
#! /bin/sh
-
function nextDayOfDay()
-
{
-
start=$1
-
days=$2
-
startDay=`date +'%Y%m%d' -d ${start}`
-
echo "日期 -----> "${startDay}
-
declare -i index
-
index=0
-
while [ ${index} -lt ${days} ]
-
do
-
date=`date -d "${startDay} ${index} days" +"%Y%m%d"`
-
echo ${index}" ------> "${date}
-
index=${index}+1
-
done
-
}
-
nextDayOfDay $1 $2
-
xiaosi@Qunar:~/company/sh$ bash date.sh 20160629 5
-
日期 -----> 20160629
-
0 ------> 20160629
-
1 ------> 20160630
-
2 ------> 20160701
-
3 ------> 20160702
-
4 ------> 20160703