网上很多日期的加减,都很麻烦,还要判断闰年等,其实充分利用date命令就好啦
date命令已经考虑了各种情况,包括格式
下面的两个函数是将stamp和日期的互换!!
如果想给定一天,求之前或者之后的所有天数 可以:
使用方法:.sh 20110702 29
可以得到20110702 20110703... 29个日期字符串。
declare -a allDay
dayIndex=0
date2stamp () {
date --utc --date "$1" +%s
}
stamp2date (){
allDay[$dayIndex]=` date --utc --date "1970-01-01 $1 sec" "+%Y%m%d"`
dayIndex=`expr $dayIndex + 1`
}
for((i=$startdateS;i<=enddateS;i+=$secondPerDay))
do
stamp2date $i
done
for((i=0;i<dayIndex;i++))
do
echo ${allDay[$i]}
done
date命令已经考虑了各种情况,包括格式
下面的两个函数是将stamp和日期的互换!!
如果想给定一天,求之前或者之后的所有天数 可以:
使用方法:.sh 20110702 29
可以得到20110702 20110703... 29个日期字符串。
declare -a allDay
dayIndex=0
date2stamp () {
date --utc --date "$1" +%s
}
stamp2date (){
allDay[$dayIndex]=` date --utc --date "1970-01-01 $1 sec" "+%Y%m%d"`
dayIndex=`expr $dayIndex + 1`
}
for((i=$startdateS;i<=enddateS;i+=$secondPerDay))
do
stamp2date $i
done
for((i=0;i<dayIndex;i++))
do
echo ${allDay[$i]}
done