您的位置:首页 > 大数据 > 人工智能

AIX 计算今年过了多少天了

2014-08-25 22:45 190 查看
#取系统时间
YEARDAY () {
#判断闰年
#标准如果能被400整除那么为闰年
#如果能被4整除且不能被100整除那么是闰年
if [ $# -ne 1 ];then
echo "Usage: $0 year"
exit 1;
fi
FYEAR="$1"

if [ `expr ${FYEAR} % 400` -eq 0 ];then
FRUN="366"
else
if [ `expr ${FYEAR} % 4` -eq 0 ];then
if [ `expr ${FYEAR} % 100` -eq 0 ];then
FRUN="365"
else
FRUN="366"
fi
else
FRUN="365"
fi
fi

echo "$FRUN"

exit 0;
}
#定义DOY函数
DOY () {
#MD表示
MD=0
#天数累计
MDTOTAL=0
#计算$1的天数
LOGBACKUPDATE=`date "+%Y-%m-%d"`
echo $LOGBACKUPDATE
BACKYEAR=`echo $LOGBACKUPDATE|awk -F'-' '{print $1}'`
BACKMONTH=`echo $LOGBACKUPDATE|awk -F'-' '{print $2}'`
BACKDAY=`echo $LOGBACKUPDATE|awk -F'-' '{print $3}'`
YEAR=$BACKYEAR
MONTH=`echo $BACKMONTH | sed 's/^0//g'`
DAY=`echo $BACKDAY | sed 's/^0//g'`
i=$((MONTH -1))
#until 循环直到条件为真就停止
until [ "$i" = 0 ]
do
case $i in
1|3|5|7|8|10|12 ) MD=31
;;
4|6|9|11 ) MD=30
;;
2 ) if [ $(YEARDAY $YEAR) = 366 ]
then MD=29
else MD=28
fi
;;
esac
(( MDTOTAL += MD ))
echo $MDTOTAL
(( i = i - 1 ))
done
TOTALDAY=`echo $(( MDTOTAL + DAY ))`
echo $TOTALDAY
}
#以上已经计算出了月份+天数
#此时的YEAR2=2011 YEAR1=2009

DOY
NUM=1
get_before=`expr $TOTALDAY - $NUM`
echo $get_before
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐