shell 中如何获取前一天的日期字符串

 我来答
良玉小帝
2018-06-11 · 个人日常精心汇总合集
良玉小帝
采纳数:5925 获赞数:9451

向TA提问 私信TA
展开全部
#判断当前的年份是否为闰年

sleapyear()
{
r4=`expr $1 % 4`
r100=`expr $1 % 100`
r400=`expr $1 % 400`
if [ r4 -eq 0 and r100 -ne 0 ]; then
return 1
elif [ r400 -eq 0 ]
then
return 1
else
return 0
fi
}
#获取前一天的日期,在此函数中会调用判断闰年的函数
yesterday()
{
day=`echo "$3 - 1"|bc`
month=$2
year=$1
if [ $day -eq 0 ]; then
month=`echo "$2 - 1"|bc`
isleapyear $1
leap=$?
case $month in
0|1|3|5|7|8|10|12 )
day=31;;
4|6|9|11 )
day=30;;
2 )
if [ $leap -eq 1 ]; then
day=29
else
day=28
fi;
esac
if [ $month -eq 0 ]; then
month=12
year=`echo "$1 - 1"|bc`
fi
fi
date=`printf "%s%02s%02s" $year $month $day`
}

#设置传入yesterday函数的参数
set `date +%C%y\ %m\ %d`; YEAR=$1; MONTH=$2; DAY=$3

#调用yesterday,传入三个参数,分别为当前年,当前月,当前日
yesterday $YEAR $MONTH $DAY
echo $date
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式