【转】求N天前的日期

本文介绍了一个用于计算指定天数前日期的Shell脚本,该脚本支持AIX, SUSE Linux, HP-UX, SunOS等操作系统。通过递归计算方式,能够返回任意天数之前的年月日格式日期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

### 支持AIX  SUSE LINUX  HP-UX  SunOS操作系统
getDivDate() {
 iDays=`expr $1 + 0`
 iYYYY=`date '+%Y'`
 iMMMM=`date '+%m'`
 iDDDD=`date '+%d'`
 iDays=`expr ${iDays} - ${iDDDD}`
 while [ ${iDays} -ge 0 ]
 do
  iMMMM=`expr ${iMMMM} - 1`
  if [ ${iMMMM} -eq 0 ]
  then
   iMMMM=12
   iYYYY=`expr ${iYYYY} - 1`
  fi
  sLstDay=`cal ${iMMMM} ${iYYYY} | tr '/n' ' ' | awk '{ print $NF }'`
  iDays=`expr ${iDays} - ${sLstDay}`
 done
 iDDDD=`expr 0 - ${iDays}`
 expr ${iMMMM} : '^.1>/dev/null && iMMMM=0${iMMMM}
 expr ${iDDDD} : '^.1>/dev/null && iDDDD=0${iDDDD}
 export iDivDate=${iYYYY}${iMMMM}${iDDDD}
}
 
### MAIN
getDivDate ${iSavDays} && iDivDate=`expr ${iDivDate} + 0`
echo ${iDivDate}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值