天天看點

HP and AIX上的date問題

一、

aaa=`echo $TZ|sed 's/.*/(../)//1/'`

aaa=`expr $aaa + 24`

eval aaa=`echo $TZ|sed 's/..$/+$aaa/'`

TZ=$aaa

export TZ

yy=`date +%y`

mm=`date +%m`

dd=`date +%d`

echo $mm$dd$yy

二、

# step 1, generate application statistics at the morning for yesterday

get_one_day_before_specified_date()

{

#get the command line input(date month & year)

    day=$1

    month=$2

    year=$3

    # if it is the first day of the month

    if [ $day -eq 01 ]

    then

        # if it is the first month of the year

        if [ $month -eq 01 ]

        then

            # make the month as 12

            month=12

            # deduct the year by one

            year=`expr $year - 1`

        else

            # deduct the month by one

            month=`expr $month - 1`

        fi

        # use cal command, discard blank lines,

        # take last field of last line,   

        # first awk  command is used to get the

        # last useful line of the calendar cmd,

        # second awk command is used to get the   

        # last field of this last useful line,

        # NF is no. of fields,

        # $NF is value of last field

                day=`cal $month $year | awk 'NF != 0{ last = $0 }; END{ print last }' |  awk '{ print $NF }'`

    else

        # deduct the day by one

        day=`expr $day - 1`

    fi

    # echo $month $day $year

    year_2dig=`echo $year|awk '{print substr($0,3)}'`

    echo $month/$day/$year_2dig

}

YEAR_T=`date +%Y`;

MONTH_T=`date +%m`;

DAY_T=`date +%d`;

YESTERDAY=`get_one_day_before_specified_date $DAY_T $MONTH_T $YEAR_T`;