清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
#!/usr/bin/ksh ############################################################## ##aix平台下日期加减 ##$1 源日期 格式:yyyyMMdd ##$2 时间间隔 小于28的自然数 ############################################################## DateAfter(){ ############################################################## if [ ! -n "$1" ];then echo "Please input date(yyyyMMdd)!" exit 0 fi if [ ! -n "$2" ];then echo "Please input Interval!" exit 0 fi ############################################################## param1len=`expr length $1` if [ $param1len -ne 8 ];then echo "Date Format IS WRONG,e.g yyyyMMdd" exit 0 fi ############################################################## if [ -n "$1" a -n "$2" ]; then month=`echo $1|cut -c 5-6` day=`echo $1|cut -c 7-8` year=`echo $1|cut -c 1-4` # Add 0 to month. This is a # trick to make month an unpadded integer. month=`expr $month + 0` # Subtract one from the current day. day=`expr $day + $2` # If the day is 0 then determine the last # day of the previous month. if [ $day -eq 0 ]; then # Find the preivous month. month=`expr $month - 1` # If the month is 0 then it is Dec 31 of # the previous year. if [ $month -eq 0 ]; then month=12 day1=31 year=`expr $year - 1` # If the month is not zero we need to find # the last day of the month. else case $month in 1|3|5|7|8|10|12) day1=31;; 4|6|9|11) day1=30;; 2) if [ `expr $year % 4` -eq 0 a `expr $year % 100` % -ne 0 o `expr $year % 400` -eq 0 ]; then day1=29 else day1=28 fi ;; esac day=`expr $day1 + $day` fi fi if [ $day -lt 0 ]; then # Find the preivous month. month=`expr $month - 1` # If the month is 0 then it is Dec 31 of # the previous year. if [ $month -eq 0 ]; then month=12 day=`expr 31 + $day` year=`expr $year - 1` # If the month is not zero we need to find # the last day of the month. else case $month in 1|3|5|7|8|10|12) day1=31;; 4|6|9|11) day1=30;; 2) if [ `expr $year % 4` -eq 0 a `expr $year % 100` % -ne 0 o `expr $year % 400` -eq 0 ]; then day1=29 else day1=28 fi ;; esac day=`expr $day1 + $day` fi fi echo "${#day}------------------------------" echo "${#month}-----------------------------" daylen=`expr length $day` monthlen=`expr length $month` if [ $daylen -lt 2 ];then day=0$day fi if [ $monthlen -lt 2 ];then month=0$month fi echo $year$month$day else date2=`date +20%y%m%d` echo "$date2" fi } d=`DateAfter $1 $2` cat<<BOF ######################################### #INPUT DATE --> $1 # #INTERVAL --> $2 # #RESULT DATE -->$d # ######################################### BOF