shell脚本指定日期减去一天如何写
CS_DATE2=$[$CS_DATE1-1]CS_DATE1是指定日期,外部作为参数输入CS_DATE2是减去一天的日期但是这么写有一个问题,当日期为04月01日时,减...
CS_DATE2=$[$CS_DATE1-1]
CS_DATE1是指定日期,外部作为参数输入
CS_DATE2是减去一天的日期
但是这么写有一个问题,当日期为04月01日时,减去1,结果为04月00日,该怎么做 才能变为03月31日,不通过判断语句来写 展开
CS_DATE1是指定日期,外部作为参数输入
CS_DATE2是减去一天的日期
但是这么写有一个问题,当日期为04月01日时,减去1,结果为04月00日,该怎么做 才能变为03月31日,不通过判断语句来写 展开
2个回答
展开全部
#!/bin/sh
get_day_before()
{
sec=`date -d $1 +%s`
sec_yesterday=$((sec - 86400))
day_before=`date -d @$sec_yesterday +%F`
echo $day_before
}
[ $# -ne 1 ] && exit 1
CS_DATE1=$1
get_day_before $CS_DATE1
先用 date 命令将指定日期转换成秒数,减去一天的秒数 86400,然后再转化成正常易读的日期格式,就可以了,不需要考虑复杂的大小月以及闰年问题。
$ ./test.sh 20150401
2015-03-31
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询