网上很多日期的加减,都很麻烦,还要判断闰年等,其实充分利用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
本文介绍了一种利用shell脚本中的date命令来快速生成指定日期范围内所有日期的方法。通过两个辅助函数date2stamp和stamp2date实现了日期戳与日期之间的转换,并提供了一个示例脚本来生成连续日期的字符串。
754

被折叠的 条评论
为什么被折叠?



