aix平台计算日期的前N天和后N天shell脚本
发布时间:2020-12-15 07:15:35 所属栏目:安全 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #!/usr/bin/ksh################################################################aix平台下日期加减##$1 源日期 格式:yyyyMMdd##$2 时间间隔 小于2
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 #!/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 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |