AIX UNIX获取前一天日期

 

#!/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.csdn.net/chenlmyy/article/details/52935795

 

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

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

 

猜你喜欢

转载自happyqing.iteye.com/blog/2349032
AIX