shell脚本获得昨天的日期

前一段时间写过一个脚本,是获得当前时间前一天的日期,最近研究了下,把之前的封装成两个函数来实现,比较有逻辑性。

#判断当前的年份是否为闰年

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

打印出昨天的日期。测试机器hp-ux。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值