欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

AIX UNIX获取前一天日期

程序员文章站 2022-03-22 10:05:21
...

 

#!/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/