得到unix系统的时间 并算出前一天的时间

得到unix系统的时间 并算出前一天的时间

 

YEAR=`date +%Y`
DAY=`date +%d`
MONTH=`date +%m`

DAY=`expr $DAY - 1`
if [ $DAY -eq 0 ]; then
  MONTH=`expr $MONTH - 1`
  if [ $MONTH -eq 0 ]; then
    MONTH=12
    YEAR=`expr $YEAR - 1`
  fi
  LASTLINE=`cal $MONTH $YEAR | grep "[0-9]" | tail -1`
  DAY=`echo $LASTLINE | sed "s/.* \([0-9][0-9]*\)/\1/"`
fi

if [ $DAY -lt 10 ]; then
        DAY=0$DAY
fi

# Finally we get the date of yesterday
YESTERDAY="$YEAR$MONTH$DAY"
echo "Yesterday is $YESTERDAY"

 

作者乃unix代码新手,若有错误,尽请指出,以便改正

 

其实我在机器上试过date +%Y%m%d -d'-1 day' 是得到昨天日期的更快捷的方式

甚至可以算出任意多天前的日期,利用date +%Y%m%d -d'-任意天数 day'

 

根据网友的跟帖我也结合自己的测试发现一下的一些得到其他时间的方法

date --date="1 days ago" 我测试过了,结果是Fri Aug 27 10:40:44 CST 2010
date +%Y%m%d --date="1 days ago"   执行结果 20100827
也就是,格式化同样起作用,看来比较强大
date +%Y%m%d --date="1 months ago" 执行结果 20100728 是一个月以前
date +%Y%m%d --date="1 years ago"  执行结果 20090828 是一年以前
date +%Y%m%d --date="tomorrow"  执行结果 20100829 是明天

应该还有其他的方法,时间和经验有限不能贴全,如果有网友知道的话请跟帖,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值