当前位置: 代码迷 >> DB2 >> 用SHELL编程怎么实现输出一段日期?
  详细解决方案

用SHELL编程怎么实现输出一段日期?

热度:4549   发布时间:2013-02-26 00:00:00.0
用SHELL编程如何实现输出一段日期?!
最近遇到一个问题就是想实现一个很简单的功能:
就是:使用shell编程将20100622到20100808这段间隔内的日期输出。
就这么简单的逻辑,我想知道各位高手有什么独到的解决办法没?
欢迎大家来挑战一下哦。。。别看简单,虽然看起来简单。呵呵

------解决方案--------------------------------------------------------
Assembly code
startDate=20100622endDate=20100808startSec=`date -d "$startDate" "+%s"`endSec=`date -d "$endDate" "+%s"`for((i=1277136000;i<=1281196800;i+=86400)); do    echo `date -d "@$i" "+%Y%m%d"`done
------解决方案--------------------------------------------------------
探讨

引用:

Assembly code
startDate=20100622
endDate=20100808
startSec=`date -d "$startDate" "+%s"`
endSec=`date -d "$endDate" "+%s"`
for((i=1277136000;i<=1281196800;i+=86400)); do
d……

------解决方案--------------------------------------------------------
n=0;while :;do _date=$(date +%Y%m%d -d"20100622 +$n day");((_date==20100808))&&break||echo $_date;((n++));done
------解决方案--------------------------------------------------------
C/C++ code
#!/bin/shstartday="20100621"for i in `seq 1 48`do        date -d "$startday +$i day " "+%Y%m%d"done
------解决方案--------------------------------------------------------
创建如下 csdn.sh 脚本
 if [[ ! -z $1 ]]
then
startDate=`date -d"$1" +%Y%m%d`
else
startDate=`date + %Y%m%d`
fi
if [[ ! -z $2 ]]
then
endDate=`date -d"$2" +%Y%m%d`
else
endDate=`date -d"$startDate 10 day" +%Y%m%d`
fi
while((startDate<endDate))
do
startDate=`date -d" $startDate 1 day" +%Y%m%d`
echo "$startDate"
done

执行脚本sh csdn.sh 20100622 20100808
  相关解决方案