AIX UNIX获取前一天日期

本文介绍了一种使用Shell脚本获取系统当前日期及前一天日期的方法,并提供了详细的脚本实现。该脚本能够准确地计算出昨天的日期,包括考虑不同月份及闰年的情况。

 

#!/bin/sh

#today=`date +%Y%m%d`
#todayHyphen=`date +%Y-%m-%d`

year=`date +%Y`
month=`date +%m`
day=`date +%d`

getYesterday()
{
	#to int
	month=`expr $month + 0`
	day=`expr $day - 1`
	
	if [ $day -eq 0 ]; then
		month=`expr $month - 1`
		if [ $month -eq 0 ]; then
		   month=12
		   day=31
		   year=`expr $year - 1`
		else
		   case $month in
		     1|3|5|7|8|10|12) day=31;;
		     4|6|9|11) day=30;;
		     2)  
		       if ( [ `expr $year % 4` -eq 0 ] && [ `expr $year % 100` -ne 0 ] || [ `expr $year % 400` -eq 0 ] ) ; then
		           day=29
		       else
		         day=28
		       fi
		     ;;
		   esac
		fi
	fi
	
	#format
	if [ $day -lt 10 ] ; then
		day='0'$day;
	fi
	if [ $month -lt 10 ] ; then
		month='0'$month;
	fi

	yesterday=$year$month$day
	yesterdayHyphen=$year-$month-$day
	
#$1 param1
	#echo $year$1$month$1$day (方法返回值)
}

 

#直接调用方法,不用返回值,在方法内设置多个变量,在外面可以用到。

#多次调用,year、month、day的值会变

getYesterday;

echo $yesterday

echo $yesterdayHyphen

 

#调用方法获取返回值的方式,方法内声明的变量,在外面看不到

#多次调用,year、month、day的值也不会变

yesterday=$(getYesterday '');

yesterdayHyphen=$(getYesterday '-');

 

echo $yesterday

echo $yesterdayHyphen

 

建议采用,第一种方法,方便。

 

参考:

AIX 环境下取得昨天日期的 Shell

http://blog.youkuaiyun.com/chenlmyy/article/details/52935795

 

Unix获取前一天日期(Linux不知道可以不以)

http://blog.itpub.net/24237320/viewspace-1852395/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值